hooyantsing's Blog

P35 容器互联--link

字数统计: 271阅读时长: 1 min
2020/11/25

【狂神说Java】Docker最新超详细版教程通俗易懂

–link命令

思考一个厂家,我们编写了一个微服务,database url=ip,项目不重启,数据库ip换掉了,我们希望可以处理这个问题,可以用名字来访问容器

1
2
3
4
# 在使用 --link 之前,是不能 ping 容器名的。
docker exec -it tomcat02 ping tomcat01
# 失败
ping: tomcat01: Name or service not known
如何解决
1
2
3
4
5
6
# 通过 --link 命令
docker run -d -P -name tomcat03 --link tomcat02 tomcat
# 再次测试 ping
docker exec -it tomcat03 ping tomcat02
# 成功
64 bytes from tomcat02(172.18.0.3) icmp_seq=1 ttl=64 time=0.100ms

既然是 tomcat03 link tomcat02 ,因此03可以ping通02,但02不能ping通03,因为还没给02配置link命令。

探究link本质

–link就是我们在hosts配置中增加了一条 172.18.0.3 tomcat02 31257784cd4,映射。

1
2
3
4
# 可以通过命令查看,tomcat03已经配置了 --link命令
docker exec -it tomcat03 cat /etc/hosts
# 可以看到一条记录
172.18.0.3 tomcat02 31257784cd4

后记

现在Docker已经不建议使用 –link 了。

docker0的问题:它不支持容器名连接访问。

CATALOG
  1. 1. –link命令
    1. 1.1. 如何解决
  2. 2. 探究link本质
  3. 3. 后记