【发布时间】:2016-02-16 09:04:13
【问题描述】:
每当我执行时
docker-compose start
docker-compose ps
我看到状态为“UP”的容器。如果我这样做了
docker-compose up -d
我会看到更多详细信息,但它会具有相同的状态。这两个命令有什么区别吗?
【问题讨论】:
标签: docker docker-compose
每当我执行时
docker-compose start
docker-compose ps
我看到状态为“UP”的容器。如果我这样做了
docker-compose up -d
我会看到更多详细信息,但它会具有相同的状态。这两个命令有什么区别吗?
【问题讨论】:
标签: docker docker-compose
docker-compose 开始
(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通过停止并重新创建 容器(保留已安装的卷)。为了防止撰写 拿起更改,使用--no-recreate标志。
完整的 CLI 参考:
https://docs.docker.com/compose/reference/
【讨论】:
在 docker Frequently asked questions 里面解释的很清楚:
启动、运行和启动有什么区别?
通常,您需要
docker-compose up。使用up启动或重启docker-compose.yml中定义的所有服务。在默认 “附加”模式,您可以看到来自所有容器的所有日志。在 “分离”模式(-d),Compose 启动容器后退出,但是 容器继续在后台运行。
docker-compose run命令用于运行“一次性”或“临时” 任务。它需要您要运行的服务名称并且只启动 运行服务所依赖的服务的容器。使用run运行测试或执行管理任务,例如删除或 将数据添加到数据卷容器。run命令的作用类似于docker run -ti,因为它打开了一个交互式终端到 容器并返回与容器的退出状态匹配的退出状态 在容器中处理。
docker-compose start命令仅对重启容器有用 之前创建的,但已停止。它从不创造新的 容器。
【讨论】: