1.拉取镜像
docker pull mcr.microsoft.com/mssql/server:2019-latest
2.创建映射目录
mkdir -p /home/docker/sqlserver
3.修改权限
chown -R 10001:0 /home/docker/sqlserver
4.启动命令,设置密码,挂载数据卷
docker run -ite ACCEPT_EULA=Y -e SA_PASSWORD=Abcdef@1234 -p 1433:1433 -v /home/docker/sqlserver:/var/opt/mssql --name sqlserver2019 -d mcr.microsoft.com/mssql/server:2019-latest
坑:
1. 开始写的 docker run -e
运行启动命令后
docker: Error response from daemon: driver failed programming external connectivity on endpoint sqlserver2019 (ac52397a7537a664aca133627603c2277225b67c8d545881c1f688281565af30): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 1433 -j DNAT --to-destination 172.17.0.2:1433 ! -i docker0: iptables: No chain/target/match by that name.
查看docker容器状态一直为Created
改为 docker run -ite不报错了 但是运行为状态一直为 Exited
2.查看官方文档,说密码强度不够
密码应符合 SQL Server 默认密码策略,否则容器无法设置 SQL Server,将停止工作。 默认情况下,密码必须为至少八个字符且包含以下四种字符中的三种:大写字母、小写字母、十进制数字、符号。 可使用 docker logs 命令检查错误日志。
修改密码强度后启动成功