一般而言我們都會直接安裝 SQL Server,但會牽涉到安裝的方式與設定的參數。透過 Docker 可以直接使用微軟原始的設定,並且不需要安裝在 Host machine。當然主要目的還是測試使用,正式環境還是推薦直接安裝。
在安裝之前,建議先安裝 server core image,理由是因為後續可以安裝不同版本的 sql server,但同樣都是架構在 server core 之上,因為 docker 會自動管理磁碟空間,透過 image 是層層疊加的,安裝兩個 images 的空間會被重複利用。
作法如下:
docker pull microsoft/windowsservercore
- 安裝 sql server developer edition:
docker run -d -p 1433:1433 -e sa_password=<SA_PASSWORD> -e ACCEPT_EULA=Y microsoft/mssql-server-windows-developer
其中, -d 代表 detach (也就是在背景中執行)、 -p 代表 port number(與外部 host 的 mapping)、 -e / –env 代表環境變數,這裡使用 ACCEPT_EULA(必須要接受微軟的條款才可以使用),加上 sa_password 代表對應的 sa 密碼
因為在背景執行,必須要透過 logs 檢查是否 SQL Server 正在執行。透過 docker ps 只能看到 windows server instance 而已:

說明實際上是失敗的,因為密碼強度不夠(因前面的設定密碼 = password),因此必須要加入英數字等密碼字母組合:
首先用 stop 停止執行中的 image:
![]()
再次執行 run 並指定包含數字與特殊符號的密碼:
![]()
這次再使用 docker logs 就可以看到有正確的執行:

接下來就可以透過 SSMS 存取 localhost database (因為 port mapping 的關係,但實際上是不同的IP,可以透過 inspect 檢查):










