我已將 SQL Server docker 容器下載到我的 Mac 上。
我從終端使用以下命令下載了容器
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
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
我正在嘗試啟動映像,如果我通過 Docker 桌面啟動映像,我可以啟動映像,但我想知道我應該如何從命令列啟動映像
我試過
docker run mcr.microsoft.com/mssql/server:2019-latest
我得到了這個回應
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
我得到這個回應:
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 FI 的回復之后,做了以下事情:
我運行了 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 個停止的容器,三個是隨機名稱,但一個是 mssql2019
當我跑
docker start mssql2019
然后我的形象開始了
這與我認為我給容器的名稱不同,但在我的例子中,我已經能夠做我需要的
我想清理容器,所以我運行了以下命令
docker rm cac05db1aac7
docker rm 0327940b7393
docker rm ad077064a63a
現在當我運行 docker ps 時,我可以看到我正在運行的影像
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 時,我只能看到容器的一個實體
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
uj5u.com熱心網友回復:
首次運行此容器時,您從 docker 注冊表下載了映像。可以從該映像運行容器的多個實體。docker ps默認情況下顯示正在運行的容器。如果您運行,您將看到停止的容器docker ps -a
要啟動已停止的容器,您可以docker start <container_name or ID>在您的情況下運行命令:
docker start sql2019_latest
(看看你第一次運行容器時在哪里分配了這個名字?)
docker stop sql2019_latest也會停止它。
在您的情況下,容器 (sql2019_latest) 和容器映像 (mcr.microsoft.com/mssql/server:2019-latest) 具有非常相似的名稱。但情況并非總是如此。如果您在運行容器時沒有提供名稱,docker 會通過組合幾個奇怪的詞為您創建一個名稱。知道何時使用影像以及何時使用容器將對您有很大幫助。
uj5u.com熱心網友回復:
在docker run 命令上指定--restart引數以在重新啟動后重新啟動容器。下面的示例將自動重新啟動它,除非它在重新啟動之前停止。
docker run -e ‘ACCEPT_EULA=Y’ -e ‘SA_PASSWORD=MyStrongPassword’ -p 1433:1433 –name sql2019_latest -d --restart unless-stopped mcr.microsoft.com/mssql/server:2019-latest
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/341839.html
標籤:sql-server 码头工人
