我有像redis和mongodb这样的基本服务,它们将共享同一图像的多个容器。
一旦客户请求新公司,我们将使用新端口为所请求公司创建新的docker-compose文件,并配置apache指向新的Web端口。
使用基本服务启动公司1服务
docker-compose -f docker-compose.base.yml -f docker-compose-company-1.yml up -d
公司2的相同方法
docker-compose -f docker-compose.base.yml -f docker-compose-company-2.yml up -d
这将为基本服务和共同服务创建实例,以及为公司传递的配置。
同时关闭公司1服务
docker-compose -f docker-compose.base.yml -f docker-compose-company-1.yml down
这也会降低基本服务,但公司2所需的基本服务
如果我们通过follwong命令
docker-compose -f docker-compose-company-1.yml down
抛出错误错误:服务“ company-1”具有未定义的服务“ mongodb-service”的链接。
docker-compose可以解决我们的问题吗?
如何使用docker compose down来关闭特定的copmany服务而不是基础服务
有关docker-componse文件的更多信息
docker-compose.base.yml服务
docker-compose-company-1.yml服务
您可以在docker-compose中使用extends:选项来解决此问题
docker-compose-base.yml
services:
base:
image:
container_name:
ports:
docker-compose-customer.yml
services:
custom:
image:
container_name:
ports:
[使用基础和客户的服务创建新的撰写文件
extends docker-compose选项>>
docker-compose-base-customer.yml
services: base: extends: file: docker-compose-base.yml service: base custom: image: container_name: ports:
您可以使用docker-compose-base-customer.yml来运行基础服务和客户服务
docker-compose -f docker-compose-base-customer.yml up
。
并使用docker-compose-customer.yml仅关闭客户服务
docker-compose -f docker-compose-customer.yml down