我试图在后台运行 ubuntu docker 镜像。所以我尝试了下面的命令
sudo docker container run -d --name my-ubuntu-container ubuntu:latest
但是这个命令不会在后台运行容器。实际上,使用
检查时状态变为“EXITED”docker container ls -a
但是如果我在上面的命令中添加“-it”标志。然后容器在后台运行。
sudo docker container run -itd --name my-ubuntu-container ubuntu:latest
现在正在检查 docker container ls -a
。我们现在在“UP”中看到状态,它在后台运行。
谁能告诉我为什么在上面的命令中添加“-it”标志和“-d”会在后台运行 ubuntu docker 镜像?
答案 0 :(得分:0)
首先,您应该避免使用“sudo”运行 docker 命令。相反,将您当前的用户添加到您的 linux 操作系统中的 docker 组。
此外,您可以执行 docker container logs <container_id>
以查看是否有最终错误。
正如其他帖子中所述:https://stackoverflow.com/a/48368594/2409641
<块引用>-它是 --interactive + --tty 的缩写,当您使用此命令 docker run 时.. 它会带您直接进入容器,其中 -d 是 --detach 的缩写,这意味着您只需运行容器,然后从它分离,所以基本上你在后台运行容器.. 编辑:因此,如果您使用-itd 运行 docker 容器,它将运行-it 选项并将您与容器分离,因此即使没有任何默认应用程序运行,您的容器仍在后台运行..
答案 1 :(得分:0)
您没有指定命令,因此容器使用默认命令 bash
运行。
如果您以交互方式运行 bash (-ti
),它会保持打开状态,否则会立即退出。
如果您想在后台运行分离的容器,您可以将命令从 bash 更改为阻止命令 - 例如 tail -f /dev/null
。
您可以运行以下命令,容器不会立即退出。
sudo docker container run -d --name my-ubuntu-container ubuntu:latest tail -f /dev/null