如何在docker-compose scale之后通过主机名访问其他容器?

时间:2016-03-16 09:13:47

标签: docker docker-compose

我正在使用docker-compose 1.6和docker 1.10.1以及docker-compose.yml的第2版。

Networking in Compose中所述,创建了新网络,并在docker-compose up之后为其中的所有容器分配了主机名。

如何在docker-compose scale <component>=2之后通过主机名覆盖其他(即缩放的)容器?

3 个答案:

答案 0 :(得分:3)

根据我已经看到的示例,假设您的容器名称为db,则缩放容器的名称为db_1db_2等等。

答案 1 :(得分:2)

使用&#34; scale&#34;时,内部docker dns服务仅解析projectname_db_1,projectname_db_2等全名。当然,最好另外提供解析服务名称+索引而没有项目名称前缀。

答案 2 :(得分:2)

我有answered这个基于python和docker api的问题。

您基本上可以使用docker api来确定您的项目名称和服务名称。

然后,您可以针对同一project + service过滤所有可用容器,以获取自己的其他实例。

通过查找数字,您最终可以构建主机名。

请参阅 How to get infos about ourself in a compose cluster (backup at gist.github.com)