Docker部署Microsoft Sql Server詳細步驟
1 背景
自 SQL Server 2019 CU3 起,支持 Ubuntu 18.04。
自 SQL Server 2019 CU10 起,支持 Ubuntu 20.04。
Docker 引擎 1.8+
至少 2 GB 的磁盤空間
至少 2 GB 的 RAM
博主機器:
Welcome to Ubuntu 20.04.3 LTS (GNU/Linux 5.11.0-37-generic x86_64)
2 創(chuàng)建容器
拉取鏡像
docker pull mcr.microsoft.com/mssql/server:2019-latest
查看鏡像
docker images root@dev-virtual-machine:/home/dev# docker images REPOSITORY TAG IMAGE ID CREATED SIZE mcr.microsoft.com/mssql/server 2019-latest 6db3c5ebc331 3 weeks ago 1.55GB
運行容器
docker run
-e "ACCEPT_EULA=Y"
-e "SA_PASSWORD=Pass@w0rd"
-p 51433:1433
--name mssql
-h mssql
-d mcr.microsoft.com/mssql/server:2019-latest
參數(shù) | 說明 |
---|---|
-e “ACCEPT_EULA=Y” 將 ACCEPT_EULA 變量設置為任意值,以確認接受最終用戶許可協(xié)議。 | SQL Server 映像的必需設置。 |
-e “SA_PASSWORD=Passw0rd” 指定至少包含 8 個字符且符合 SQL Server 密碼要求的強密碼。 | SQL Server 映像的必需設置。 |
-p 51433:1433 將主機環(huán)境中的 TCP 端口(第一個值)映射到容器中的 TCP 端口(第二個值)。 | 在此示例中,SQL Server 偵聽容器中的 TCP 1433,并對主機上的端口 1433 公開。 |
–name sql1 為容器指定一個自定義名稱,而不是使用隨機生成的名稱。 | 如果運行多個容器,則無法重復使用相同的名稱。 |
-h sql1 用于顯式設置容器主機名,如果不指定它,則默認為容器 ID, | 該 ID 是隨機生成的系統(tǒng) GUID。 |
mcr.microsoft.com/mssql/server:2019-latest SQL Server 2019 | Ubuntu Linux 容器映像。 |
查看容器
root@dev-virtual-machine:/home/dev# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6498220c95f6 mcr.microsoft.com/mssql/server:2019-latest "/opt/mssql/bin/perm…" 24 minutes ago Up 23 minutes 0.0.0.0:51433->1433/tcp, :::51433->1433/tcp mssql
將 -h 和 --name 設為相同的值是一種很好的方法,可以輕松地識別目標容器
3 修改SA密碼
微軟官方建議修改SA密碼
SA 帳戶是安裝過程中在 SQL Server 實例上創(chuàng)建的系統(tǒng)管理員。 創(chuàng)建 SQL Server 容器后,通過在容器中運行 echo $SA_PASSWORD,可發(fā)現(xiàn)指定的 SA_PASSWORD 環(huán)境變量。
選擇 SA 用戶要使用的強密碼。
使用 docker exec 運行sqlcmd,以使用 Transact-SQL 更改密碼。 以下示例將從用戶輸入中讀取舊密碼和新密碼。
sudo docker exec -it mssql /opt/mssql-tools/bin/sqlcmd \ -S localhost -U SA \ -P "$(read -sp "Enter current SA password: "; echo "${REPLY}")" \ -Q "ALTER LOGIN SA WITH PASSWORD=\"$(read -sp "Enter new SA password: "; echo "${REPLY}")\""
4 鏈接mssql
下列步驟在容器內(nèi)部使用 SQL Server 命令行工具 sqlcmd 來連接 SQL Server。
使用 docker exec -it 命令在運行的容器內(nèi)部啟動交互式 Bash Shell。 在下面的示例中,mssql是在創(chuàng)建容器時由 --name 參數(shù)指定的名稱。
sudo docker exec -it mssql "bash"
在容器內(nèi)部使用 sqlcmd 進行本地連接。 默認情況下,sqlcmd 不在路徑之中,因此需要指定完整路徑。
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "Passw0rd"
如果成功,應會顯示 sqlcmd 命令提示符:1>
5 容器外鏈接mssql
1.查找承載容器的計算機的 IP 地址。 在 Linux 上,使用 ifconfig 或 ip addr。在 Windows 上,使用 ipconfig。
2.對于本示例,請在客戶端計算機上安裝 sqlcmd 工具
3.運行 sqlcmd,指定 IP 地址和映射容器中的端口 1433 的端口。 本例中為主機上的端口 51433,則在此處使用它。 還需要在防火墻上打開相應的入站端口以允許連接。
4.運行 Transact-SQL 命令。 完成后,鍵入 QUIT。
navicat 鏈接注意事項
使用Navicat連接Sqlserver數(shù)據(jù)庫時,若端口號不是默認端口號,需要在主機IP后使用英文逗號加端口號的形式。
對于Navicat,以上設置后,需要安裝SQL Server Native Client 10.0驅(qū)動,安裝程序為Navicat軟件根目錄下的sqlncli_x64.msi,32位版也有提供。安裝完成后,創(chuàng)建Sqlserver連接時高級選項卡中的Native Client驅(qū)動將有下拉選項可供選擇。
總結(jié)
到此這篇關于Docker部署Microsoft Sql Server詳細步驟的文章就介紹到這了,更多相關Docker部署Microsoft Sql Server內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Docker方式啟動tomcat訪問首頁出現(xiàn)404錯誤
這篇文章主要介紹了Docker方式啟動tomcat訪問首頁出現(xiàn)404錯誤。文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12WIN10系統(tǒng)和Docker內(nèi)部容器IP互通方式
這篇文章主要介紹了WIN10系統(tǒng)和Docker內(nèi)部容器IP互通方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11基于Docker+Jenkins實現(xiàn)自動化部署的方法
這篇文章主要介紹了基于Docker+Jenkins實現(xiàn)自動化部署,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07使用Maven打包構(gòu)建Docker鏡像并推送到倉庫
這篇文章主要介紹了使用Maven打包構(gòu)建Docker鏡像并推送到倉庫問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04Docker深度清除鏡像緩存overlay2的實現(xiàn)
維清理鏡像是通過命令?docker?rm?i?刪除鏡像的,但是這條命令不會刪除docker?build命令產(chǎn)生的緩存文件,本文主要介紹了Docker深度清除鏡像緩存overlay2的實現(xiàn),感興趣的可以了解一下2023-12-12