使用Docker-Compose启动具有不同配置的容器的多个实例

我了解您可以使用scale命令来使用docker-compose来旋转多个容器。但是,它们都将具有相同的配置。

是否可以在同一主机上以同一配置(不同.yml文件)启动容器的容器?

使用以下命令:

docker-compose -f dev.yml up -d

docker-compose -f qa.yml up -d

只有qa.yml容器会运行,这不是我想要的。

- -

当我尝试运行两个命令时,将发生以下情况。

$ docker-compose -f compose/dev.yml up -d

compose_mydocker_1 is up-to-date

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

905912df6e48 compose_mydocker "/sbin/my_init" 2 days ago Up 2 days 0.0.0.0:1234->80/tcp compose_mydocker_1

$ docker-compose -f compose/qa.yml up -d

Recreating compose_mydocker_1...

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

3fc912201224 compose_mydocker "/sbin/my_init" 5 seconds ago Up 5 seconds 0.0.0.0:1235->80/tcp compose_mydocker_1

qa.ymldev.yml这个样子的:

    mydocker: 

build: ..

ports:

- "1234:80" #for dev.yml

#- "1235:80" for qa.yml

environment:

- ENVIRONMENT=dev #and vice-versa for qa

volumes:

- ../assets/images:/var/www/assets

回答:

您需要做的就是更改项目名称。默认情况下,compose使用基于当前目录命名的项目。在您的情况下,您需要单独的环境,因此您需要不同的项目名称。

您可以在环境中使用docker-compose -p <project_name>或设置COMPOSE_PROJECT_NAME

关于提供持久化项目名称的方法也有一些讨论:https :

//github.com/docker/compose/issues/745

以上是 使用Docker-Compose启动具有不同配置的容器的多个实例 的全部内容, 来源链接: utcz.com/qa/431927.html

回到顶部