`docker-compose` 中 `down`、`kill` 和 `stop` 命令有什么不同?

4

我想知道在哪种情况下使用docker-compose的哪个命令,是downkill还是stop?它们之间有什么区别?

2个回答

5
根据docker-compose文档的说明: 因此,如果您可以等待一段时间,并且想进行简单的“热”重启,而不禁用或删除Docker基础设施元素(例如容器或网络),则应使用docker-compose stop。 这是最不侵入性的选择。
如果您着急,并且不想等待优雅的停止操作,但也不想删除容器,则应使用docker-compose kill。容器停止工作,但准备好重新启动。
如果您不想保留任何容器,则可以使用docker-compose down。 这种情况相当于“冷”重启。
请注意,您还可以使用docker-compose pause暂停服务的正在运行的容器,因此它们不会停止(如上述命令中所示),并且可以使用docker-compose unpause解除暂停状态。

1
在实践中,我觉得“暂停”或“停止”并不是真正有用的;更加干净和符合Docker的方式是停止、删除并重新创建容器以便从一个干净的状态重新启动它们。另外请注意,重新运行“up”将会重新创建任何在docker-compose.yml中配置已更改的容器。 - David Maze
为什么要将现有的文档复制/粘贴到StackOverflow上?这不是该网站的目的。 - Kevin Kopf
2
@AlexKarshin,我找不到像这样的答案,而这个链接证实了我可以记录自己收集到的知识:https://stackoverflow.com/help/self-answer。顺便说一句,这不是复制/粘贴,你的意见无效。 - Gerard Jaryczewski
@GerardJaryczewski 在这里提供了非常好的参考。谢谢。 - Handsome Nerd

4

根据Gerad的回答,如果你将容器视为运行操作系统(例如Windows),那么这些命令可以映射到以下内容:

  • 暂停(取消暂停) -> 休眠
  • 杀死 -> 软关机
  • 停止(启动,重新启动) -> 强制关闭(通过拔掉系统电源)
  • 关闭(打开,创建) -> 恢复出厂设置

1
我将 stop 视为软关机 - 它可以使容器优雅地停止。而 kill 则立即停止它们,没有时间进行适当的关闭。 - StaNov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接