我一直无法找到一种方法来在 docker-compose.yml 文件中只启动/关闭一个容器。我可以在不正常的情况下启动和停止单个容器,但我无法在两次重启之间更改容器配置(环境变量、挂载点等)
我在这里缺少什么?在这种情况下,最佳做法是什么?
Jor*_*ris 84
我发现这与 docker-compose down 对单个服务具有相同的影响:
docker-compose rm -s -v yourService
用法:rm [选项] [服务...]
选项:
-s、--stop 如果需要,在删除之前停止容器
-v 删除附加到容器的任何匿名卷
您可以将所有标志压缩为一个-
参数:docker-compose rm -sv yourService
gab*_*836 41
我建议你在 stackoverflow.com 上查看这个优秀的线程。这里重建单个容器并重新启动它的快速答案是:
docker-compose up -d --build worker
Run Code Online (Sandbox Code Playgroud)
例如,如果您的更改涉及 Dockerfile 而不仅仅是 docker-compose.ymll,这将是理想的解决方案
您可以使用
$ docker-compose -f docker-compose.yml up yourService
Run Code Online (Sandbox Code Playgroud)
仅启动 yourService 及其所需的所有依赖项。
因此,如果 yourService 依赖于 mysql 容器,则上述命令将启动两个容器。
小智 7
其他人已经展示了如何一起启动/启动容器,但是这是您可以单独重新启动和停止它们的方法。
重启容器
# restart immediately
docker-compose restart <container_name>
# restart after a 10s delay
docker-compose restart -t 10 <container_name>
Run Code Online (Sandbox Code Playgroud)
停止容器
# stop immediately
docker-compose stop <container_name>
# stop after a 10s delay
docker-compose stop -t 10 <container_name>
Run Code Online (Sandbox Code Playgroud)
对于那些想要在不停机的情况下进行更改的人,您可以使用以下命令构建一个新映像并进行更改,而无需任何停止/启动,但它将在 docker-compose.yml 文件中构建所有 Dockerfile:
docker-compose up -d --build
Run Code Online (Sandbox Code Playgroud)
我最近有这个需求,并通过使用一个单独的docker-compose-production.yml
文件来处理调整来解决它。然后记得启动docker-compose -f docker-compose-production.yml...
归档时间: |
|
查看次数: |
91557 次 |
最近记录: |