SQL Server Docker Container 快速入門

更新 2026.09.21

使用 Docker 執行 SQL Server Container

Microsoft 提供官方的 Official images for Microsoft SQL Server on Linux for Docker Engine,在 Windows 上即可簡單地執行 Linux 版 SQL Server Container。本文說明如何下載映像檔、啟動 Container,並以 SQL Server Management Studio(SSMS)與 sqlcmd 連線。操作流程參考 Quickstart: Run SQL Server container images with Docker。

下載 Images 與執行 SQL Server Container

環境需求請參考 Prerequisites。

執行下列指令,下載最新版的 SQL Server 2022 Linux Container 映像檔:

docker pull mcr.microsoft.com/mssql/server:2022-latest

執行 Container(請將 YourStrong!Passw0rd 替換為自己的密碼,後續範例皆使用同一組密碼):

docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=YourStrong!Passw0rd" -p 1433:1433 --name sql1 -d mcr.microsoft.com/mssql/server:2022-latest
  • -e "ACCEPT_EULA=Y":表示同意 End-User Licensing Agreement,未設定此環境變數,Container 無法使用。
  • -e "MSSQL_SA_PASSWORD=YourStrong!Passw0rd":設定 SA 帳號的登入密碼(舊版本使用的 SA_PASSWORD 已被棄用)。密碼須符合 SQL Server 預設的密碼強度(Password Policy):
    • 不能包含帳號的文字
    • 至少 8 個字元
    • 須包含以下四類字元中的至少三類
      • 大寫英文字
      • 小寫英文字
      • 阿拉伯數字
      • 非英文數字符號,如 #、@ 等
  • -p 1433:1433:SQL Server 預設使用 1433 port 連接,此參數將 Container 的 1433 port 對應到本機的 1433 port。
  • -d:讓 Container 在背景執行。
  • --name sql1:指定 Container 的名稱為 sql1。
  • mcr.microsoft.com/mssql/server:2022-latest:映像檔名稱。

執行 docker ps 檢查 Container 是否啟動。啟動成功時畫面如下圖,Status 顯示 Up。若未成功,請參考 Troubleshooting section of the configuration guide。

SQL Server Running

使用 SQL Server Management Studio(SSMS) 連線到 SQL Server

由於已透過 -p 1433:1433 將 Container 的 port 對應到本機,不需另外查詢 Docker 的 IP,直接連線到本機的 1433 port 即可。

在 SSMS 的連線視窗中設定:

  • Server name:localhost,1433(port 前為逗號)
  • Authentication:SQL Server Authentication
  • Login:sa;Password:前面設定的密碼
  • Container 使用自簽憑證,而新版 SSMS 預設要求加密連線,若出現憑證錯誤,請勾選 Trust server certificate
connect-to-sql-server

連線成功後如下圖,操作方式與一般 SQL Server 相同。

connected

使用 Docker 互動模式進入 Container 的 bash

除了 SSMS,也可以使用 Docker 互動模式進入 Container 的 bash 執行指令。範例先以 SSMS 建立 Sample 資料庫與一些測試資料,如下圖。

sample data

執行下列指令進入互動模式:

docker exec -it sql1 "bash"
  • exec:執行指令
  • -it:進入互動模式
  • sql1:指定 Container

進入 Container 的 bash 後,畫面如下圖。

container bash

根據 Quickstart: Run SQL Server container images with Docker 的說明,sqlcmd 位於 Container 內的固定路徑:SQL Server 2022 映像檔為 /opt/mssql-tools18/bin/sqlcmd,2017 映像檔則為 /opt/mssql-tools/bin/sqlcmd。使用 sqlcmd 連線到 SQL Server 的指令如下:

/opt/mssql-tools18/bin/sqlcmd -S localhost -U SA -P 'YourStrong!Passw0rd' -C

新版 sqlcmd 預設要求加密連線,而 Container 使用自簽憑證,因此需加上 -C(信任伺服器憑證)。

連線成功後即可執行 SQL 指令,SELECT 範例如下圖。

sqlcmd select