【问题标题】:MSSQL at Docker exits instantlyDocker 上的 MSSQL 立即退出
【发布时间】:2020-10-25 23:41:00
【问题描述】:

我正在尝试在 Windows 10 的 Docker 上设置 MSSQL,但由于某种原因它开始关闭我的容器

我已经这样使用了几个月,但现在我不知道发生了什么

    C:\Users\user\
    λ docker ps -a
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

    C:\Users\user\
    λ docker login
    Authenticating with existing credentials...
    Login Succeeded

    C:\Users\user\
    λ docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=<YourStrong!Passw0rd>123' -p 1433:1433 --name sql -d mcr.microsoft.com/mssql/server:2017-latest
    337e5efb35f0bf4b465181a0f8be4851b12f353a3a8710ddf817d2f501e5fea

    C:\Users\user\
    λ docker ps -a
    CONTAINER ID        IMAGE                                        COMMAND                  CREATED             STATUS              PORTS                    NAMES
    347q5effb3cf0        mcr.microsoft.com/mssql/server:2017-latest   "/opt/mssql/bin/sqls…"   3 seconds ago       Up 2 seconds        0.0.0.0:1433->1433/tcp   sql

    C:\Users\user\
    λ docker ps -a
    CONTAINER ID        IMAGE                                        COMMAND                  CREATED             STATUS                     PORTS               NAMES
    347q5effb3cf0        mcr.microsoft.com/mssql/server:2017-latest   "/opt/mssql/bin/sqls…"   6 seconds ago       Exited (1) 2 seconds ago                       sql

    C:\Users\user\
    λ docker start sql
    sql

    C:\Users\user\
    λ docker ps -a
    CONTAINER ID        IMAGE                                        COMMAND                  CREATED             STATUS              PORTS                    NAMES
    347q5effb3cf0        mcr.microsoft.com/mssql/server:2017-latest   "/opt/mssql/bin/sqls…"   14 seconds ago      Up 2 seconds        0.0.0.0:1433->1433/tcp   sql

    C:\Users\user\
    λ docker ps -a
    CONTAINER ID        IMAGE                                        COMMAND                  CREATED             STATUS                    PORTS               NAMES
    347q5effb3cf0        mcr.microsoft.com/mssql/server:2017-latest   "/opt/mssql/bin/sqls…"   16 seconds ago      Exited (1) 1 second ago                       sql

docker 记录 sql

表演

必须先接受 SQL Server 最终用户许可协议 (EULA),然后才能接受 SQL 服务器可以启动。本产品的许可条款可从以下网址下载 http://go.microsoft.com/fwlink/?LinkId=746388.

您可以通过指定 --accept-eula 命令行选项来接受 EULA, 设置 ACCEPT_EULA 环境变量,或使用 mssql-conf 工具。 SQL Server 最终用户许可协议 (EULA) 必须在 SQL 之前接受 服务器可以启动。本产品的许可条款可从以下网址下载 http://go.microsoft.com/fwlink/?LinkId=746388.

您可以通过指定 --accept-eula 命令行选项来接受 EULA, 设置 ACCEPT_EULA 环境变量,或使用 mssql-conf 工具。

有人知道可能出了什么问题吗?

【问题讨论】:

  • 尝试删除 ACCEPT_EULA 和 SA_PASSWORD 周围的引号:docker run -e ACCEPT_EULA=Y -e exec SA_PASSWORD=&lt;YourStrong!Passw0rd&gt;123 --name sql -d mcr.microsoft.com/mssql/server:2017-latest
  • @GarethLyons The specified file can not be found.
  • 对不起,中间有一个无意的执行官。应该是docker run -e ACCEPT_EULA=Y -e SA_PASSWORD=&lt;YourStrong!Passw0rd&gt;123 --name sql -d mcr.microsoft.com/mssql/server:2017-latest
  • @GarethLyons Nope :/ C:\Users\user&gt;docker run -e ACCEPT_EULA=Y -e SA_PASSWORD=&lt;YourStrong!Passw0rd&gt;123 --name sql -d mcr.microsoft.com/mssql/server:2017-latest The specified file can not be found.
  • 好的,我的刚切换到Linux;使用单引号得到相同的错误,但它适用于双引号 docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=&lt;YourStrong!Passw0rd&gt;123" -p 1433:1433 --name sql -d mcr.microsoft.com/mssql/server:2017-latest

标签: sql-server


【解决方案1】:

从 Windows 命令行/Powershell 运行 Linux 容器时,环境选项 (-e) 需要双引号

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong!Passw0rd>123" -p 1433:1433 --name sql -d mcr.microsoft.com/mssql/server:2017-latest

【讨论】:

  • 另外,它不接受简单的密码! 'g1234' 之类的密码将不被接受,容器将不会运行。密码必须很强,例如“G@1234asdf”才能被接受并保持容器运行。
猜你喜欢
  • 1970-01-01
  • 2017-04-12
  • 1970-01-01
  • 2018-01-24
  • 1970-01-01
  • 1970-01-01
  • 2022-08-24
  • 2015-03-28
  • 2015-07-13
相关资源
最近更新 更多