2015-12-14 2 views
0

Если я запускаю несколько контейнеров docker-compose run, он создает несколько версий основного контейнера, но он разделяет связанные.Сделать компоновку запуска с помощью уникальных связанных контейнеров

Есть ли способ загрузить полностью независимый стек контейнера для каждого запуска?

Прямо сейчас у меня есть:

$ docker-compose run web & 
$ docker-compose run web & 
$ docker ps 
CONTAINER ID  IMAGE  NAMES 
a579904eca2d  www_web www_web_run_2 
cb8f07ef0ca4  www_web www_web_run_1 
d3f5e6343200  www_db  www_db_1 

Но я хочу, чтобы иметь

CONTAINER ID  IMAGE  NAMES 
a579904eca2d  www_web www_web_run_2 
cb8f07ef0ca4  www_web www_web_run_1 
d3f5e6343200  www_db  www_db_1 
d3f5e6343200  www_db  www_db_2 

Где каждый веб-контейнеры получить свой собственный контейнер DB.

+0

Не уверен в вашем конкретном сценарии, но может ли помочь «докер-композитор»? –

ответ

3

docker-compose двоичная помощь дает возможность:

-p, имя --project NAME Укажите альтернативное имя проекта (по умолчанию: имя каталога)

Вы можете сделать что-то вроде :

docker-compose -p stack1 up -d 
docker-compose -p stack2 up -d 

Который даст вам:

stack1_web_1 
stack1_db_1 
stack2_web_1 
stack2_db_1 

Это позволит вам сделать что-то вроде docker-compose -p stack1 run web cat /etc/os-release, чтобы выбрать конкретный контейнер для работы. Он также должен сохранять ссылки на стек. Например, если у вас была ссылка на db в службе web, stack1_web_1 будет связан с stack1_db_1 и stack2_web_1 будет связан с stack2_db_1.

+0

Это также в справочнике: https://docs.docker.com/compose/faq/#how-do-i-run-multiple-copies-of-a-compose-file-on-the-same -host – dnephin