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


124

每当我执行

docker-compose start 
docker-compose ps

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

docker-compose up -d

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

Answers:


166

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

启动服务的现有容器。

docker-compose up
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/


3
更新了指向docker -compose CLI参考的链接:docs.docker.com/compose/reference * docker -compose up:docs.docker.com/compose/reference/up * docker -compose开始:docs.docker.com/compose/reference / start
michael

18

在docker 常见问题中,这很清楚地解释了:

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

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

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

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


重启命令与这些运行-启动-启动有何不同?
纳格
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.