什么是容器的“死亡”状态?

Tim*_*Tim 6 docker

https://docs.docker.com/engine/reference/commandline/ps/

状态 已创建、正在重新启动、正在运行、正在删除、已暂停、已退出或已死亡之一

对于容器来说,“死亡”状态意味着什么?

Asi*_*sik 4

只需查看我能找到的文档:

“dead”用于“失效”的容器;例如,您想要删除但仅部分删除的容器,因为外部进程使资源保持繁忙。死容器无法(重新)启动,只能删除。您可以手动尝试删除死容器(如果导致其在第一次尝试失败时无法删除的问题),守护程序将在重新启动时自动尝试删除死容器。

来自 Docker 维护者 Sebastiaan van Stijn,https://github.com/docker/cli/issues/502#issuecomment-330361748 这是关于此事的相当权威的来源,所以看起来您链接到的 Stackoverflow 答案确实是正确的。

“死”是否意味着容器已被 docker rm 删除?

docker rm 已执行,但仅部分成功,因此它仍然存在,处于该dead状态。

是的,它们会出现在 ps --all 中:

在查看 docker ps -a 的输出时,您可能会看到容器的死亡状态和退出状态。https://success.docker.com/article/what-is-the-difference- Between-dead-and-exited-containers

如果容器由于错误而在完成之前退出,那么它的状态是什么?

其状态为“已退出”,并返回错误代码,例如“10 秒前已退出 (1)”。https://success.docker.com/article/what-is-the-difference- Between-dead-and-exited-containers

“退出”是否意味着“运行并完成的容器”?

是的,状态包括主进程的退出状态码。