我有一个脚本,可以构建 docker 映像,将其加载到 docker,更新
docker-compose.yml
,然后调用 docker compose down
和 docker compose up
。重新创建 Docker compose up
服务并且我感兴趣的服务以正确的(新)版本运行后。
我不想停止所有被
docker compose down
停止的服务,我想停止唯一的目标服务。我发现docker compose up
和docker compose down
都支持指定服务名称
向下: https://forums.docker.com/t/docker-compose-down-specific-service/125914/8 https://docs.docker.com/reference/cli/docker/compose/down/ 向上: https://docs.docker.com/reference/cli/docker/compose/up/
但是当我在
docker compose down myservicename
中调用 Docker version 25.0.3
时,我收到错误:unknown command "myservicename" for "docker compose down"
如何仅停止(并移除)一个容器? 可能还有另一种方法只为一个容器“更新图像”?
您应该使用 docker compose stop 和 docker compose rm 命令的组合,这些命令允许指定服务名称。具体方法如下:
停止特定服务:首先,如果服务正在运行,您需要停止该服务。您可以通过使用 docker compose stop 命令后跟服务名称来完成此操作:
docker compose stop myservicename
移除已停止的服务容器:停止服务后,可以使用 docker compose rm 命令移除其容器。
docker compose rm -f myservicename
更新并重新启动特定服务:既然特定服务已停止并删除,您可以继续更新其映像并重新启动它。要重建服务的映像并重新启动它,您可以使用带有 --no-deps 标志的 docker compose up 命令来避免不必要地启动链接服务,并使用 -d 标志以分离模式运行它:
docker compose up -d --no-deps --build myservicename