saa*_*ada 11 hostname docker docker-compose
假设我有一个包含两个容器的docker compose文件.两者都在/ etc/hosts文件中相互引用.容器A具有容器B的参考,反之亦然.所有这些都是自动发生的.现在我想在A的hosts文件中为B添加一个或多个主机名.我该怎么做呢?有没有一种特殊的方法可以在Docker Compose中实现这一点?
例:
172.0.10.166 service-b my-custom-hostname
Ste*_*eve 16
是.在撰写文件中,您可以指定网络别名.
services:
db:
networks:
default:
aliases:
- database
- postgres
Run Code Online (Sandbox Code Playgroud)
在这个例子中,该db
服务可以通过默认的网络上的其他容器中使用达到db
,database
或postgres
.
您还可以使用docker network connect
带有该--alias=
选项的命令向运行的容器添加别名.
Docker compose 有一个extra_hosts功能,允许将其他条目添加到容器的主机文件中。
web1:
image: tomcat:8.0
ports:
- 8081:8080
extra_hosts:
- "somehost:162.242.195.82"
- "otherhost:50.31.209.229"
web2:
image: tomcat:8.0
ports:
- 8082:8080
web3:
image: tomcat:8.0
ports:
- 8083:8080
Run Code Online (Sandbox Code Playgroud)
使用新的docker 1.9 网络功能运行 docker compose :
$ docker-compose --x-networking up -d
Starting tmp_web1_1
Starting tmp_web2_1
Starting tmp_web3_1
Run Code Online (Sandbox Code Playgroud)
并查看第一个容器中的主机文件。显示其他容器,以及额外的自定义条目:
$ docker exec tmp_web1_1 cat /etc/hosts
..
172.18.0.4 web1
172.18.0.2 tmp_web2_1
172.18.0.3 tmp_web3_1
50.31.209.229 otherhost
162.242.195.82 somehost
Run Code Online (Sandbox Code Playgroud)