docker-compose up 和 docker-compose start 有什么区别?

新手上路,请多包涵

每当我执行

docker-compose start
docker-compose ps

我看到状态为“UP”的容器。如果我做

docker-compose up -d

我会看到更多详细信息,但它会具有相同的状态。这两个命令有什么区别吗?

原文由 Michael Villeneuve 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.1k
2 个回答

码头工人撰写开始

https://docs.docker.com/compose/reference/start/

启动服务的现有容器。

码头工人组成

( https://docs.docker.com/compose/reference/up/ )

为服务构建、(重新)创建、启动和附加到容器。

除非它们已经在运行,否则此命令还会启动任何链接的服务。

docker-compose up 命令聚合每个容器的输出(本质上是运行 docker-compose logs -f )。当命令退出时,所有容器都将停止。运行 docker-compose up -d 在后台启动容器并使其保持运行。

如果服务存在现有容器,并且在创建容器后更改了服务的配置或映像,则 docker-compose up 通过停止并重新创建容器(保留已安装的卷)来获取更改。要防止 Compose 获取更改,请使用 --no-recreate 标志。

完整的 CLI 参考:

https://docs.docker.com/compose/reference/

原文由 Luiz Lago 发布,翻译遵循 CC BY-SA 4.0 许可协议

在 docker 常见问题解答 中对此进行了非常清楚的解释:

启动、运行和启动之间有什么区别?

通常,您需要 docker-compose up 。使用 up 启动或重新启动 docker-compose.yml 中定义的所有服务。在默认的“附加”模式下,您会看到来自所有容器的所有日志。在“分离”模式下( -d ),Compose 在启动容器后退出,但容器继续在后台运行。

docker-compose run 命令用于运行“一次性”或“临时”任务。它需要您要运行的服务名称,并且只为正在运行的服务所依赖的服务启动容器。使用 run 运行测试或执行管理任务,例如将数据删除或添加到数据卷容器。 run 命令的作用与 docker run -ti 类似,它打开一个到容器的交互式终端,并返回一个与容器中进程的退出状态相匹配的退出状态。

docker-compose start 命令仅对重新启动先前创建但已停止的容器有用。它从不创建新容器。

原文由 Supun Praneeth 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题