何时要运行SQL Server容器,泊坞窗显示sxited状态

时间:2019-11-01 09:35:56

标签: sql-server docker

拉出SQL Server的容器后,当我想运行时,当O执行以下命令时,Docker向我显示“退出”状态:

docker ps -a

我尝试了此链接,但没有帮助我: https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-configure-docker?view=sql-server-ver15#troubleshooting

这些是我的容器日志: https://paste.fedoraproject.org/paste/dBBFlyulZ1Bera2caa84tA

我使用 Fedora 29 x86_x64 ,并且我的Docker客户端版本是18.09.6 Build 481bc77,而Docker-Ce是19.03.4

(对不起,我的英语不好)

1 个答案:

答案 0 :(得分:0)

这是因为启动SQL Server会产生错误。
可以在错误日志中查找该错误。
不幸的是,由于容器终止,您无法访问它。
要查找错误日志,您需要共享该目录...

在主机上,创建容器存储数据的位置:

sudo mkdir -p /var/opt/mssql

使用映射的数据目录创建docker-container:

docker pull mcr.microsoft.com/mssql/server:2017-latest
docker run -d -p 2017:1433 --name mssql_2017 -e MSSQL_SA_PASSWORD=TOP_SECRET -e ACCEPT_EULA=Y  -e MSSQL_PID="Developer" -v /var/opt/mssql:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest

(注意:这会将容器的端口1433映射到主机上的端口2017)
然后,启动/停止容器:

docker start mssql_2017
docker stop mssql_2017

现在,您现在可以在主机上查看/var/opt/mssql/log中的错误。

此外,您可以通过与sqlcmd连接来检查其是否有效:

对于Fedora:

sudo su
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo
exit
sudo yum clean expire-cache
sudo yum check-update
sudo yum remove mssql-tools unixODBC-utf16-devel
sudo yum install mssql-tools unixODBC-devel
sudo ln -sfn /opt/mssql-tools/bin/sqlcmd /usr/bin/sqlcmd
sqlcmd -S localhost,2017 -U SA -P "<YourPassword>"

对于Ubuntu:

sudo wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2017.list)"
sudo apt-get update
sudo apt-get install mssql-tools
sudo ln -sfn /opt/mssql-tools/bin/sqlcmd /usr/bin/sqlcmd
sqlcmd -S localhost,2017 -U SA -P "<YourPassword>"