为什么 docker start 命令默认以分离模式启动容器

问题描述 投票:0回答:1

我在 docker cli 中使用了 run 命令,所以当我使用该命令时

docker run --name ubuntu ubuntu

它只是存在,因为它没有 ptty 和输入输出连接,我们可以使用 -it 标志附加终端,但是当我们尝试启动处于停止状态的 doke 容器时,为什么容器默认以分离模式启动,这种行为并没有甚至在文档中提到过。

当我使用命令时

docker start ubuntu

当容器“ubuntu”处于停止模式时,容器已启动并在后台运行,但是当我使用“docker run”命令时,容器只是停止,有人可以解释这种行为吗?

如果您能提供一些材料供参考,那就太好了,因为我没有发现任何有关此行为的材料。

docker dockerfile docker-machine docker-cli
1个回答
0
投票

通过跑步

docker container ls -a

您可以在命令栏中看到已停止的容器以及容器的
PID 1
EntryPoint

这是
/bin/bash

就是这样,因为你没有附加到shell,所以它退出了
它立即完成并且容器退出,因此状态栏显示“Exited (0)”。
括号内的数字是容器的退出代码。

如果你再次启动容器,我认为不会有什么不同。

您可以发出命令来覆盖图像的主

EntryPoint
,该图像只是
/bin/bash
,或者在第一次运行容器时使用
-it
附加到它。

建议:

docker run -d --name  ubuntu-test ubuntu:20.04  /bin/bash -c "sleep inf"

它将无限期地运行容器,直到您停止它

希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.