docker-compose 删除兄弟容器
docker-compose removes sibling container
我正在使用 docker-compose
和 docker-compose.yml
文件作为我 ci/cd 管道到服务器上 create/re-create 容器的最后一步。
代码示例:
sudo docker-compose up --force-recreate --detach
sudo docker image prune -f --all --filter="label=is_image_disposable=true"
我的目标是部署和保留几个容器,来自相同的存储库,但使用不同的标签 在 单个服务器上 .
问题是 docker-compose 在创建新容器之前似乎删除了我的 repo 的现有容器,即使现有容器具有标签 :dev
,而新容器具有标签 :v3
.
举个例子:在执行 docker-compose
命令之前,我有一个名为 运行 的容器
my_app_dev
存储库的容器 hub/my.app:dev
,
在 docker-compose
命令之后 运行 我有这个
my_app_v3
存储库的容器 hub/my.app:v3
。
我最后想看到的是两个容器都启动了 运行:
my_app_dev
存储库的容器 hub/my.app:dev
my_app_v3
存储库的容器 hub/my.app:v3
有人可以告诉我该怎么做吗?
这是预期的行为。根据项目的概念创作作品。
只要两个组合操作使用相同的项目名称,配置就会相互覆盖。
通过为每个组合操作使用唯一的项目名称,您可以在某种程度上做您想做的事情。
docker compose --project-name dev up
docker compose --project-name v3 up
这导致容器以该特定项目名称为前缀。即 dev-app-1
和 v3-app-1
.
如果它们都需要在同一个网络上,您可以预先创建一个网络并在默认网络密钥下将其作为外部网络引用。
networks:
default:
name: shared-network
external: true
我正在使用 docker-compose
和 docker-compose.yml
文件作为我 ci/cd 管道到服务器上 create/re-create 容器的最后一步。
代码示例:
sudo docker-compose up --force-recreate --detach
sudo docker image prune -f --all --filter="label=is_image_disposable=true"
我的目标是部署和保留几个容器,来自相同的存储库,但使用不同的标签 在 单个服务器上 .
问题是 docker-compose 在创建新容器之前似乎删除了我的 repo 的现有容器,即使现有容器具有标签 :dev
,而新容器具有标签 :v3
.
举个例子:在执行 docker-compose
命令之前,我有一个名为 运行 的容器
my_app_dev
存储库的容器hub/my.app:dev
,
在 docker-compose
命令之后 运行 我有这个
my_app_v3
存储库的容器hub/my.app:v3
。
我最后想看到的是两个容器都启动了 运行:
my_app_dev
存储库的容器hub/my.app:dev
my_app_v3
存储库的容器hub/my.app:v3
有人可以告诉我该怎么做吗?
这是预期的行为。根据项目的概念创作作品。 只要两个组合操作使用相同的项目名称,配置就会相互覆盖。
通过为每个组合操作使用唯一的项目名称,您可以在某种程度上做您想做的事情。
docker compose --project-name dev up
docker compose --project-name v3 up
这导致容器以该特定项目名称为前缀。即 dev-app-1
和 v3-app-1
.
如果它们都需要在同一个网络上,您可以预先创建一个网络并在默认网络密钥下将其作为外部网络引用。
networks:
default:
name: shared-network
external: true