每当我执行时
docker-compose start
docker-compose ps
我看到状态为"UP"的容器。如果我做
docker-compose up -d
我会看到更详细的内容,但它将具有相同的状态。两个命令之间有什么区别吗?
docker compose start
(https://docs.docker.com/compose/reference/start/)
启动服务的现有容器。
docker组合
(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/
在docker常见问题中,这一点解释得非常清楚:
起身、跑步和起跑有什么区别
通常,您需要
docker-compose up
。使用up
启动或重新启动在CCD_ 8。在默认情况下在"附加"模式下,您可以看到来自所有容器的所有日志。在里面"分离"模式(-d
),Compose在启动容器后退出,但容器继续在后台运行。
docker-compose run
命令用于运行"一次性"或"临时"任务。它需要您想要运行的服务名称,并且只启动正在运行的服务所依赖的服务的容器。使用run
运行测试或执行管理任务,如删除或将数据添加到数据卷容器。run
命令的作用类似docker run -ti
,因为它向容器的退出状态,并返回与容器中的进程。
docker-compose start
命令仅对重新启动容器有用以前创建但已停止的。它从不创造新的集装箱。
Docker Compose中的up
、run
和start
之间有什么区别
docker-compose up
:构建,(重新)创建并启动容器。它还连接到服务的容器docker-compose run
:根据业务需求运行一次性或临时任务。这里,必须提供服务名称,并且docker只启动特定服务,还启动目标服务所依赖的其他服务(如果有的话)。它有助于测试容器以及执行任务docker-compose start
:启动已停止的容器,无法创建新容器