在Windows系统之上,我们可以使用PowerShell来运行SQL Server镜像。脚本如下所示:
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=123456abcD" `
-p 1433:1433 --name mySqlServer `
-d mcr.microsoft.com/mssql/server:2017-latest
相关参数说明如下所示:
参数
描述
-e “ACCEPT_EULA=Y”
将 ACCEPT_EULA 变量设置为任意值,以确认接受最终用户许可协议。 SQL Server 映像的必需设置。
-e “SA_PASSWORD =123456abcD”
指定至少包含 8 个字符且符合 SQL Server 密码要求的强密码。 SQL Server 映像的必需设置。
-p 1433:1433
建立主机环境(第一个值)上的 TCP 端口与容器(第二个值)中 TCP 端口的映射。 在此示例中,SQL Server 侦听容器中的 TCP 1433 并公开的端口 1433,在主机上。
--name sql1
为容器指定一个自定义名称,而不是使用随机生成的名称。 如果运行多个容器,则无法重复使用相同的名称。
mcr.microsoft.com/mssql/server:2017-latest
SQL Server 2017 Linux 容器映像。
注意:密码应符合 SQL Server 默认密码策略,否则容器无法设置 SQL Server,将停止工作。 默认情况下,密码必须至少为 8 个字符长,且包含三个以下四种字符集的字符:大写字母、 小写字母、 十进制数字和符号。 你可以通过执行 docker logs 命令检查错误日志。
执行之后(镜像不存在会自动拉取,大家也可以使用拉取命令下拉取镜像,比如:docker pull mcr.microsoft.com/mssql/server:2017-latest),会默认创建一个使用 SQL Server 2017 开发人员版的容器,端口为1433,密码为123456abcD。
镜像拉取完成之后成功启动:当然,大家也可以通过命令行查看:
docker ps -a
如果“状态(STATUS)”列显示“UP”,则 SQL Server 将在容器中运行,并侦听“端口”列中指定的端口。
Bash Shell运行
如果是Linux系统,我们可以通过Bash Shell执行以下命令:
sudo docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=123456abcD' \
-p 1433:1433 --name mySqlServer \
-d mcr.microsoft.com/mssql/server:2017-latest