我无法找到在 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
用法: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