簡介
平時在Windows 安裝SQL Server都需要花不少時間,而試著在docker上安裝SQL Server on Linux,意外發現不用幾分鐘就完成所需要的安裝。
建立mssql-server-linux Container
這裡使用Docker Hub上的microsoft/mssql-server-linux
直接來建立container
sudo docker run --name 'MSSQL2017' \
-e 'ACCEPT_EULA=Y' \
-e 'SA_PASSWORD=!@#qweASD' \
-e 'MSSQL_PID=Developer' \
-p 1433:1433 \
-d microsoft/mssql-server-linux:2017-latest
--name
指定Container名稱ACCEPT_EULA=Y
確認接收使用者授權合約SA_PASSWORD
指定sa密碼(密碼長度至少需為 8 個字元且符合 SQL Server 密碼需求)MSSQL_PID
設定 SQL Server 版本或產品金鑰。(default: Developer)-p 1433:1433
開放port的對應-d
指定背景執行
啟動後可以確認Container狀況
sudo docker ps -a
連接SQL Server
-
使用
docker exec -it
命令進入Container的互動模式(MSSQL2017為上面設定的Container 名稱)docker exec -it MSSQL2017 "bash"
-
進入容器後,以 sqlcmd 進行本機連線。 這裡sqlcmd必須指定完整路徑。(以SA帳號進行登入)
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '<YourNewStrong!Passw0rd>'
-
進入sqlcmd後就可以自行新增資料庫或查詢資料。
使用SSMS連接mssql-server-linux
如果你的SQL server Container和執行SSMS的主機是同一台,可直接用localhost
名稱進行連線。(下圖因為是兩台不同主機,所以我用ip進行連線)
同場加映
上面Docker指令也可以寫成docker-compose.yml
version: '3'
services:
MSSQL2017:
image: microsoft/mssql-server-linux:2017-latest
restart: always
container_name: MSSQL2017
ports:
- 1433:1433
volumes:
- ./mssql:/var/opt/mssql
environment:
- ACCEPT_EULA=Y
- SA_PASSWORD=!@#qweASD
- MSSQL_PID=Developer
之後可直接執行
sudo docker-compose up -d
參考資料
以 Docker 執行 SQL Server 容器映像
在 Docker 上設定 SQL Server 容器映像
microsoft/mssql-server-linux
如有錯誤或建議,歡迎留言指教,謝謝!!
(相關內容如有侵犯隱私或著作權,請協助通知刪除,感謝)
我在用的時候 volumn加下去就會無法成功
回覆刪除原本想要把bak直接放進去
後來寫在dockerfile裡面做copy了