楔子
工作在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 连接并访问
End---
原文出处:https://www.cnblogs.com/Hvai/p/11819520.html
来源:oschina
链接:https://my.oschina.net/u/4382053/blog/3247834