使docker-compose运行唯一的链接容器

时间:2015-12-14 22:21:56

标签: docker docker-compose

如果我运行多个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

每个Web容器都有自己的数据库容器。

1 个答案:

答案 0 :(得分:3)

docker-compose二进制帮助提供了以下选项:

  

-p, - project-name 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 }}