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

时间:2015-11-15 01:44:42

标签: docker docker-compose

每当我执行

docker-compose start 
docker-compose ps

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

docker-compose up -d

我会看到更详细但它会有相同的状态。两个命令之间有什么区别吗?

2 个答案:

答案 0 :(得分:131)

docker-compose start

启动服务的现有容器。

docker-compose up

构建,(重新)创建,启动和附加服务的容器。

将启动链接服务,除非它们已在运行。

默认情况下,docker-compose up将聚合每个容器的输出,当它退出时,所有容器都将被停止。运行docker-compose up -d,将在后台启动容器并让它们继续运行。

默认情况下,如果服务存在现有容器,则docker-compose up将停止并重新创建它们(保留带卷的挂载卷),以便拾取docker-compose.yml中的更改。如果您不希望停止并重新创建容器,请使用docker-compose up --no-recreate。如果需要,这仍将启动任何已停止的容器。

来源:https://docs.docker.com/v1.5/compose/cli/

我希望它有所帮助

答案 1 :(得分:1)

在docker Frequently asked questions 中,对此的解释非常清楚:

  

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

     

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

     

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

     

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