Docker部署Microsoft Sql Server詳細(xì)步驟
1 背景
自 SQL Server 2019 CU3 起,支持 Ubuntu 18.04。
自 SQL Server 2019 CU10 起,支持 Ubuntu 20.04。
Docker 引擎 1.8+
至少 2 GB 的磁盤空間
至少 2 GB 的 RAM
博主機(jī)器:
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
運(yùn)行容器
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 變量設(shè)置為任意值,以確認(rèn)接受最終用戶許可協(xié)議。 | SQL Server 映像的必需設(shè)置。 |
-e “SA_PASSWORD=Passw0rd” 指定至少包含 8 個(gè)字符且符合 SQL Server 密碼要求的強(qiáng)密碼。 | SQL Server 映像的必需設(shè)置。 |
-p 51433:1433 將主機(jī)環(huán)境中的 TCP 端口(第一個(gè)值)映射到容器中的 TCP 端口(第二個(gè)值)。 | 在此示例中,SQL Server 偵聽容器中的 TCP 1433,并對(duì)主機(jī)上的端口 1433 公開。 |
–name sql1 為容器指定一個(gè)自定義名稱,而不是使用隨機(jī)生成的名稱。 | 如果運(yùn)行多個(gè)容器,則無法重復(fù)使用相同的名稱。 |
-h sql1 用于顯式設(shè)置容器主機(jī)名,如果不指定它,則默認(rèn)為容器 ID, | 該 ID 是隨機(jī)生成的系統(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 設(shè)為相同的值是一種很好的方法,可以輕松地識(shí)別目標(biāo)容器
3 修改SA密碼
微軟官方建議修改SA密碼
SA 帳戶是安裝過程中在 SQL Server 實(shí)例上創(chuàng)建的系統(tǒng)管理員。 創(chuàng)建 SQL Server 容器后,通過在容器中運(yùn)行 echo $SA_PASSWORD,可發(fā)現(xiàn)指定的 SA_PASSWORD 環(huán)境變量。
選擇 SA 用戶要使用的強(qiáng)密碼。
使用 docker exec 運(yùn)行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 命令在運(yùn)行的容器內(nèi)部啟動(dòng)交互式 Bash Shell。 在下面的示例中,mssql是在創(chuàng)建容器時(shí)由 --name 參數(shù)指定的名稱。
sudo docker exec -it mssql "bash"
在容器內(nèi)部使用 sqlcmd 進(jìn)行本地連接。 默認(rèn)情況下,sqlcmd 不在路徑之中,因此需要指定完整路徑。
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "Passw0rd"
如果成功,應(yīng)會(huì)顯示 sqlcmd 命令提示符:1>
5 容器外鏈接mssql
1.查找承載容器的計(jì)算機(jī)的 IP 地址。 在 Linux 上,使用 ifconfig 或 ip addr。在 Windows 上,使用 ipconfig。
2.對(duì)于本示例,請?jiān)诳蛻舳擞?jì)算機(jī)上安裝 sqlcmd 工具
3.運(yùn)行 sqlcmd,指定 IP 地址和映射容器中的端口 1433 的端口。 本例中為主機(jī)上的端口 51433,則在此處使用它。 還需要在防火墻上打開相應(yīng)的入站端口以允許連接。
4.運(yùn)行 Transact-SQL 命令。 完成后,鍵入 QUIT。
navicat 鏈接注意事項(xiàng)
使用Navicat連接Sqlserver數(shù)據(jù)庫時(shí),若端口號(hào)不是默認(rèn)端口號(hào),需要在主機(jī)IP后使用英文逗號(hào)加端口號(hào)的形式。
對(duì)于Navicat,以上設(shè)置后,需要安裝SQL Server Native Client 10.0驅(qū)動(dòng),安裝程序?yàn)镹avicat軟件根目錄下的sqlncli_x64.msi,32位版也有提供。安裝完成后,創(chuàng)建Sqlserver連接時(shí)高級(jí)選項(xiàng)卡中的Native Client驅(qū)動(dòng)將有下拉選項(xiàng)可供選擇。
總結(jié)
到此這篇關(guān)于Docker部署Microsoft Sql Server詳細(xì)步驟的文章就介紹到這了,更多相關(guān)Docker部署Microsoft Sql Server內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker方式啟動(dòng)tomcat訪問首頁出現(xiàn)404錯(cuò)誤
這篇文章主要介紹了Docker方式啟動(dòng)tomcat訪問首頁出現(xiàn)404錯(cuò)誤。文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12WIN10系統(tǒng)和Docker內(nèi)部容器IP互通方式
這篇文章主要介紹了WIN10系統(tǒng)和Docker內(nèi)部容器IP互通方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11基于Docker+Jenkins實(shí)現(xiàn)自動(dòng)化部署的方法
這篇文章主要介紹了基于Docker+Jenkins實(shí)現(xiàn)自動(dòng)化部署,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07使用Maven打包構(gòu)建Docker鏡像并推送到倉庫
這篇文章主要介紹了使用Maven打包構(gòu)建Docker鏡像并推送到倉庫問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04Docker深度清除鏡像緩存overlay2的實(shí)現(xiàn)
維清理鏡像是通過命令?docker?rm?i?刪除鏡像的,但是這條命令不會(huì)刪除docker?build命令產(chǎn)生的緩存文件,本文主要介紹了Docker深度清除鏡像緩存overlay2的實(shí)現(xiàn),感興趣的可以了解一下2023-12-12Docker運(yùn)行Nacos容器自動(dòng)退出問題的解決方法
使用Docker運(yùn)行Nacos容器的時(shí)候發(fā)現(xiàn)總是自動(dòng)退出。Nacos日志里面沒有明顯的報(bào)錯(cuò)信息。查了一下是內(nèi)存溢出錯(cuò)誤,怎么處理呢,下面小編給大家介紹下Docker運(yùn)行Nacos容器自動(dòng)退出問題及解決方法,需要的朋友可以參考下2022-07-07