You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac环境下Docker部署的SQL Server 2019重启后命令行启动问题

Mac环境下重启后Docker版SQL Server命令行启动失败问题

我在Mac设备上下载了SQL Server Docker容器,首先通过终端执行以下命令拉取镜像:

docker pull mcr.microsoft.com/mssql/server:2019-latest

随后使用以下命令成功运行容器:

docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=MyStrongPassword' -p 1433:1433 --name sql2019_latest -d mcr.microsoft.com/mssql/server:2019-latest

但后续发现Mac从休眠状态恢复或者重启后,容器始终处于停止状态。执行docker images命令可以看到镜像存在,返回结果如下:

REPOSITORY                                   TAG           IMAGE ID       CREATED        SIZE
mcr.microsoft.com/mssql/server               2019-latest   80bdc8efc889   4 weeks ago    1.55GB

执行docker ps命令没有返回任何运行中的容器:

docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

我可以通过Docker Desktop启动容器,但希望掌握命令行启动的方法。先后尝试执行以下两条命令均失败:

docker run mcr.microsoft.com/mssql/server:2019-latest

返回提示需要同意SQL Server最终用户许可协议(EULA),内容如下:

SQL Server 2019 will run as non-root by default.
This container is running as user mssql.
To learn more visit https://go.microsoft.com/fwlink/?linkid=2099216.
The SQL Server End-User License Agreement (EULA) must be accepted before SQL
Server can start. The license terms for this product can be downloaded from
http://go.microsoft.com/fwlink/?LinkId=746388.

You can accept the EULA by specifying the --accept-eula command line option,
setting the ACCEPT_EULA environment variable, or using the mssql-conf tool.

随后我尝试执行:

docker run mcr.microsoft.com/mssql/server:2019-latest --accept-eula

返回exec参数错误,内容如下:

SQL Server 2019 will run as non-root by default.
This container is running as user mssql.
To learn more visit https://go.microsoft.com/fwlink/?linkid=2099216.
/opt/mssql/bin/permissions_check.sh: line 59: exec: --: invalid option
exec: usage: exec [-cl] [-a name] [command [arguments ...]] [redirection ...]

请问我通过命令行启动容器的操作哪里存在问题?

*** 更新 ***
参照Jamie F的回复我完成了以下操作:首先执行docker ps -a命令查看所有容器,返回结果如下:

docker ps -a
CONTAINER ID   IMAGE                                        COMMAND                  CREATED          STATUS                      PORTS                                       NAMES
cac05db1aac7   mcr.microsoft.com/mssql/server:2019-latest   "/opt/mssql/bin/perm…"   38 minutes ago   Exited (2) 38 minutes ago                                               agitated_cohen
0327940b7393   mcr.microsoft.com/mssql/server:2019-latest   "/opt/mssql/bin/perm…"   39 minutes ago   Exited (2) 39 minutes ago                                               focused_mclean
ad077064a63a   mcr.microsoft.com/mssql/server:2019-latest   "/opt/mssql/bin/perm…"   41 minutes ago   Exited (1) 41 minutes ago                                               objective_torvalds
c9809150f9d1   mcr.microsoft.com/mssql/server:2019-latest   "/opt/mssql/bin/perm…"   2 days ago       Exited (255) 44 hours ago   0.0.0.0:1433->1433/tcp, :::1433->1433/tcp   mssql2019

可以看到共有4个已停止的容器,其中3个为随机命名的冗余容器,1个名为mssql2019的为我之前创建的有效容器。执行docker start mssql2019命令即可成功启动容器:

docker start mssql2019 

该容器名称与我最初配置的名称存在差异,但已满足我的使用需求。随后我执行以下命令清理了冗余容器:

docker rm cac05db1aac7
docker rm 0327940b7393
docker rm ad077064a63a

此时执行docker ps即可看到运行中的SQL Server容器:

docker ps
CONTAINER ID   IMAGE                                        COMMAND                  CREATED      STATUS         PORTS                                       NAMES
c9809150f9d1   mcr.microsoft.com/mssql/server:2019-latest   "/opt/mssql/bin/perm…"   3 days ago   Up 4 minutes   0.0.0.0:1433->1433/tcp, :::1433->1433/tcp   mssql2019

执行docker ps -a也仅保留1个有效容器实例:

docker ps -a
CONTAINER ID   IMAGE                                        COMMAND                  CREATED      STATUS         PORTS                                       NAMES
c9809150f9d1   mcr.microsoft.com/mssql/server:2019-latest   "/opt/mssql/bin/perm…"   3 days ago   Up 3 minutes   0.0.0.0:1433->1433/tcp, :::1433->1433/tcp   mssql2019

内容的提问来源于stack exchange,提问作者Darren Guy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 06:27:03