楔子
工作在win10環境下,使用Docker Windows桌面版容器化SqlServer數據庫連接使用(主要是想用Docker),但是同時需要Linux系統測試,win10 下VMware 虛擬機安裝CentOS 與Docker沖突(都是虛擬化技術,該沖突可以解決,但是切換麻煩略),想到Win10 Linux 子系統發現也是一樣,關鍵Win10 Linux 子系統安裝Docker無法運行,最后干脆在CentOS 虛擬機下安裝Docker 然后容器化SqlServer 讓外界訪問使用
需要步驟(所需工具)
安裝 VMware Workstation 15 Pro(略)
虛擬機安裝 CentOS 8 建議
- 內存大於2G (sqlserver 需要服務器的內存至少2G)
- 網絡先設置自動獲取(GUI桌面最好,方便手動設置網絡而不用進入vi修改網絡配置)
Docker 安裝步驟
- 下載docker-ce的repo
curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
- 安裝依賴
yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
- 安裝docker-ce
yum install docker-ce
clear - 啟動docker
systemctl start docker
- 查看Docker版本和服務
安裝SqlServer Docker(在Docker服務啟動之后 )
- SQlServer Docker 官方指導
- 安裝sqlserver
- 執行
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=sa賬戶的強密碼' -p 1433:1433 --name=mysqlserver2017 -d mcr.microsoft.com/mssql/server:2017-latest
這里會直接pull sqlserver 2017 的鏡像到Docker 並且運行一個name=mysqlserver2017的容器,映射端口為1433(也就是centOS 中可以通過localhost:1433訪問該數據庫或者Ip地址)
- 如果沒有成功或者容器運行幾秒之后停止,原因可能是服務器內存不足2g或者sa密碼太弱了 可以查看日志
Docker logs mysqlserver2017
,
- CentOS 中與容器交互
docker exec -it mysqlserver2017 /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P <your_password>
- 到目前為止僅CentOs 可以訪問SqlServer
Windows 訪問CentOS 8 Ip+1433端口
- 開放端口
firewall-cmd --zone=public --add-port=1433/tcp --permanent
- 重啟防火牆
firewall-cmd --reload
3.ip addr
查看ip
windows->cmd->telnet 192.168.2.2 1433
成功訪問那么既可訪問數據庫(如果不成功,關閉防火牆再試systemctl stop firewalld.service
)- 使用DataGrip 連接並訪問