本文介紹如何在docker 中使用sqlserver鏡像,運行sqlserver 容器,並在容器外部訪問sqlserver 數據庫。本文演示得docker,為windows dockers desktop。
一、查找鏡像
在 docker hub(https://hub.docker.com/_/microsoft-mssql-server) 上找到sqlserver 鏡像。
二、拉取鏡像:
powershell 鼠標右鍵 以管理員身份運行,輸入 官網給出的命令: docker pull mcr.microsoft.com/mssql/server:2017-latest
三、運行sqlserver 數據庫容器
運行如下命令,開啟容器:docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Fyy@12345678" -p 1433:1433 --memory 2000M --name sqlserver -d mcr.microsoft.com/mssql/server:2017-latest
其中,有幾個坑點:不處理這些坑點,會導致你的 sqlserver 容器不能正常運行。
1."ACCEPT_EULA=Y" 和 "SA_PASSWORD=Fyy@12345678" : windows docker,這里必須是雙引號。
2."SA_PASSWORD=Fyy@12345678" 密碼復雜度,要有大小寫、特殊符號 和 數字
3. --memory 2000M:sqlserver 的容器運行時,內存要>=2000MB,因此,要指定 容器運行時內存。否則容器已啟動就推出,且不會有任何異常信息。
當容器不能啟動,或者啟動就退出時,可以 用命令 docker logs <container> 查看日志,根據日志信息解決問題(<container> 為需要操作的 容器ID或者 name,后面不再說明)。
四、訪問數據庫:
數據庫容器運行后,就可以在容器外,通過ssms 訪問數據庫。
1. 根據 docker inspect <container> 命令查看sqlserver容器的網絡,其中<container> 代表要操作的容器,可以是容器的name 或者ID。
2.容器外 ssms連接數據庫:填入容器IP,以及啟動容器時設置的賬號密碼 登錄容器數據庫。
參考:https://hub.docker.com/_/microsoft-mssql-server
有疑問,可在這里提issue,有人解答:https://github.com/microsoft/mssql-docker/issues
數據庫容器掛載及其他命令,可參考:https://www.cnblogs.com/hulizhong/p/11271739.html