docker-compose up/down 只有一个容器

docker-compose up/down 只有一个容器

我无法找到在 docker-compose.yml 文件中启动/关闭一个容器的方法。当然,我可以启动和停止单个容器,但我无法在重新启动之间更改容器配置(环境变量、挂载点等)。

我在这里想念什么? 在这种情况下,最佳做法是什么?

答案1

我最近有这个需求,并通过用一个单独的docker-compose-production.yml文件来处理调整解决了这个问题。然后记得用docker-compose -f docker-compose-production.yml...

答案2

我发现这对单个服务的影响与 docker-compose down 相同:

docker-compose rm -s -v yourService

docker-compose rm

用法:rm [选项] [服务...]

选项:
-s,--stop 如果需要,在删除之前停止容器
-v 删除附加到容器的所有匿名卷

您可以将所有标志压缩为一个-参数:docker-compose rm -sv yourService

答案3

我建议你看看这个优秀的线程在 stackoverflow.com 上。重建单个容器并重新启动它的快速答案是:

docker-compose up -d --build worker

例如,如果你的更改涉及 Dockerfile 而不仅仅是 docker-compose.ymll,那么这将是理想的解决方案

答案4

其他人已经展示了如何一起启动/运行容器,但这是如何单独重新启动和停止它们的方法。

重启容器

# restart immediately
docker-compose restart <container_name>

# restart after a 10s delay
docker-compose restart -t 10 <container_name> 

停止容器

# stop immediately  
docker-compose stop <container_name>

# stop after a 10s delay  
docker-compose stop -t 10 <container_name>

对于那些想要在不停机的情况下进行更改的用户,你可以构建一个新映像并使用以下命令进行更改而无需停止/启动,但它将在 docker-compose.yml 文件中构建所有 Dockerfile

docker-compose up -d --build

相关内容