How to reach additional containers by the hostname

2019-03-15 07:59发布

I'm using the docker-compose 1.6 with docker 1.10.1 and version 2 of docker-compose.yml.

As described in Networking in Compose, new network is created and all containers are assigned hostnames in it after docker-compose up.

How can I reach additional (i.e. scaled) containers via hostnames after docker-compose scale <component>=2?

3条回答
啃猪蹄的小仙女
2楼-- · 2019-03-15 08:33

Based on examples I've seen, assuming your container name is db, the scaled containers have the names of db_1, db_2, etc...

查看更多
成全新的幸福
3楼-- · 2019-03-15 08:36

When using "scale", internal docker dns service resolves only full names like projectname_db_1, projectname_db_2 and so on. Certainly, it would be better to provide in addition resolving service name + index without project name prefix.

查看更多
淡お忘
4楼-- · 2019-03-15 08:44

I have answered that question based on python with the docker api.

You basically can use the docker api, to figure out what your project name and service name is.

Then you can filter all available containers for the same project+service to get other instances of yourself.

With the lookup of the numbers you can finally construct the hostnames.

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

查看更多
登录 后发表回答