如果我运行多个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容器都有自己的数据库容器。
答案 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
}}