运行 SQL Server 的 Docker 容器似乎每次都崩溃

Chr*_*ell 3 docker

我创建了一个 Docker 容器:

sudo docker pull microsoft/mssql-server-linux:2017-latest
Run Code Online (Sandbox Code Playgroud)

然后我运行它:

sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=root' -p 1401:1433 
                --name sqlserver1 -d microsoft/mssql-server-linux:2017-latest
Run Code Online (Sandbox Code Playgroud)

我跑了:

docker start sqlserver1
Run Code Online (Sandbox Code Playgroud)

大约 3 秒后docker ps返回空 - 让我认为容器正在关闭。

我是 Docker 的新手 - 这真的会自动关闭吗?如果是这样,我该如何防止?

lar*_*sks 6

我试了一下,看起来你的问题不是 Docker 问题……它只是一个 MSSQL 问题。如果您查看容器的日志,您将看到:

ERROR: Unable to set system administrator password: Password validation failed.
The password does not meet SQL Server password policy requirements because it is
too short. The password must be at least 8 characters.
Run Code Online (Sandbox Code Playgroud)

看起来 MSSQL 强制执行密码复杂性要求,其中包括字符类的长度和数量。以下似乎工作正常:

docker run -it -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=r00t.R00T' -p 1401:1433 --name sqlserver1 microsoft/mssql-server-linux:2017-latest
Run Code Online (Sandbox Code Playgroud)