环境说明:
- 阿里云服务器
- Ubuntu 16.04
- docker
1、拉取镜像
sudo docker pull mcr.microsoft.com/mssql/server:2017-latest
2、创建容器
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Tomkluas&123" -p 1433:1433 --name sql1 -v /var/mssql/data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest
参数解释:
-e "ACCEPT_EULA=Y" :将 ACCEPT_EULA 变量设置为任意值,以确认接受最终用户许可协议。 SQL Server 映像的必需设置。
-e "SA_PASSWORD=Tomkluas&123":指定至少包含 8 个字符且符合 SQL Server 密码要求 的强密码。 SQL Server 映像的必需设置,此处的设置是Tomkluas&123,
* 注意如果密码太过简单,则无法创建容器,docker logs sql1查看日志如下:
ERROR: Unable to set system administrator password: Password validation failed. The password does not meet SQL Server password policy requirements because it is not complex enough. The password must be at least 8 characters long and contain characters from three of the following four sets: Uppercase letters, Lowercase letters, Base 10 digits, and Symbols..
-p 1433:1433:将主机环境中的 TCP 端口(第一个值)映射到容器中的 TCP 端口(第二个值)。 在此示例中,SQL Server 侦听容器中的 TCP 1433,并对主机上的端口 1433 公开。
--name sql1:为容器指定一个自定义名称,而不是使用随机生成的名称。 如果运行多个容器,则无法重复使用相同的名称。
-d:在后台运行容器(守护程序)
-v /var/mssql/data:/var/opt/mssql:将Linux本地路径/var/mssql/data,挂载到docker中的 /var/opt/mssql 路径,防止容器删除后数据丢失。