目录
前言
一、安装前Docker必须条件?
二、安装步骤
1.拉取MSSqlserver容器镜像
2.查看镜像是否拉取成功
3.创建mssql的容器并运行
4. 查看容器运行状况
三、更改 sa 密码
四、外部机器访问 Docker MS Sqlserver2017
总结
参考文章
前言
作为一个.NET 开发人员,大家都知道微软的数据只能运行在windows电脑中。可自从Dokcer火了之后,微软现在已经将它的Sql server2017以后的数据库从windows平台迁移到了Docker中啦!
一、安装前Docker必须条件?
- Docker 的版本必须大于1.8
命令如下:
docker version
- Docker宿主机内存大于2GB
- Docker宿主机硬盘容量大于2GB
二、安装步骤
1.拉取MSSqlserver容器镜像
命令如下:
sudo docker pull mcr.microsoft.com/mssql/server:2017-latest
在拉取安装的过程中会较为漫长,主要还是根据网络有关。请大家耐心等待,如果在拉取过程中出现报错或网络中断,那么只需要从新运行上面的命令即可。它会自动从断点继续拉取。
2.查看镜像是否拉取成功
命令如下:
docker images
当看到如上图所示,那么就说明镜像拉取成功啦~~~
3.创建mssql的容器并运行
命令如下:
sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=你的密码" -p 1433:1433 --name mssql -d mcr.microsoft.com/mssql/server:2017-latest
注意:
密码应符合 SQL Server 默认密码策略,否则容器无法设置 SQL Server,将停止工作。 默认情况下,密码的长度必须至少为 8 个字符,并且必须包含以下四种字符中的三种:大写字母、小写字母、十进制数字和符号。 你可以通过执行 docker logs 命令检查错误日志。
默认情况下,这会创建一个使用 SQL Server 2017 开发人员版的容器。 在容器中运行生产版本的过程略有不同。 有关详细信息,请参阅运行生产容器映像。
docker run 参数说明
参数 | 说明 |
-e "ACCEPT_EULA=Y" | 将 ACCEPT_EULA 变量设置为任意值,以确认接受最终用户许可协议。 SQL Server 映像的必需设置。 |
-e "SA_PASSWORD=<YourStrong@Passw0rd\>" | 指定至少包含 8 个字符且符合 SQL Server 密码要求的强密码。 SQL Server 映像的必需设置。 |
-p 1433:1433 | 将主机环境中的 TCP 端口(第一个值)映射到容器中的 TCP 端口(第二个值)。 在此示例中,SQL Server 侦听容器中的 TCP 1433,并对主机上的端口 1433 公开。 |
--name mssql | 为容器指定一个自定义名称,而不是使用随机生成的名称。 如果运行多个容器,则无法重复使用相同的名称。 |
-d | 在后台运行容器(守护程序) |
** mcr.microsoft.com/mssql/server:2017-latest** | SQL Server 2017 Linux 容器映像。 |
4. 查看容器运行状况
命令如下:
docker ps -a
结果如下:
在STAUS这栏下显示该容器已经在1小时前运行成功了。
三、更改 sa 密码
命令如下:
sudo docker exec -it mssql /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "旧密码" -Q 'ALTER LOGIN SA WITH PASSWORD="新密码"'
四、外部机器访问 Docker MS Sqlserver2017
输入宿主机的ip地址和Docker mssql 的密码,直接就可以登录。如果还是不能登录请检查宿主机是否开放了1433端口。
总结
本次内容主要详细讲解了Docker中如何安装MS sql2017数据库,以及需要注意的一些问题。这里特别强调下密码必须安装强制密码要求取设置,否则容器不能运行。
参考文章
快速入门:使用 Docker 运行 SQL Server 容器映像(微软官方)