在docker-compose scale之后如何通过主机名访问额外的容器?
我使用docker-compose 1.6与docker 1.10.1和docker-compose.yml的版本2。
正如Compose中的Networking所述, 在docker docker-compose up
后,将创build新的networking,并为其中的所有容器分配主机名。
在docker-compose scale <component>=2
后,如何通过主机名访问附加(即缩放)的容器?
基于我见过的例子,假设你的容器名称是db
,缩放容器的名称是db_1
, db_2
等等。
当使用“scale”时,内部docker dns服务只parsing全名,比如projectname_db_1,projectname_db_2等等。 当然,最好还是提供parsing服务名称+索引而不用项目名称前缀。
我已经用docker api的python来回答这个问题。
你基本上可以使用docker api
,找出你的项目名称和服务名称是什么。
然后,你可以过滤所有可用的容器为同一个project
+ service
来获得自己的其他实例。
随着数字的查找,你可以最终构build主机名。
请参阅如何在组合群集中获取有关我们自己的信息 (备份在gist.github.com上)