1. 程式人生 > 其它 >Docker系列(27)- 容器互聯--link

Docker系列(27)- 容器互聯--link

思考

思考一個場景,我們編寫了一個微服務,database url=IP:,專案不重啟,資料庫ip換掉了,我們希望可以處理這個問題,可以使用名字來進行訪問容器

實踐

[root@localhost ~]# docker exec -it tomcat02 ping tomcat01
ping: tomcat01: Name or service not known

# 如何可以解決呢?
# 通過 --link 即可以解決了網路連通問題
[root@localhost ~]# docker run -d -P --name tomcat03 --link tomcat02 tomcat
9e655559aba4b48c79d775fa8dd995cc7342578b8c21864200eeb2cf9349b231
[root@localhost ~]# docker exec -it tomcat03 ping tomcat02

PING tomcat02 (172.17.0.4) 56(84) bytes of data.
64 bytes from tomcat02 (172.17.0.4): icmp_seq=1 ttl=64 time=0.148 ms
64 bytes from tomcat02 (172.17.0.4): icmp_seq=2 ttl=64 time=0.067 ms
64 bytes from tomcat02 (172.17.0.4): icmp_seq=3 ttl=64 time=0.067 ms
64 bytes from tomcat02 (172.17.0.4): icmp_seq=4 ttl=64 time=0.059 ms

# 反向可以ping通嗎?

[root@localhost ~]# docker exec -it tomcat02 ping tomcat03
ping: tomcat03: Name or service not known

探究:inspect

# 檢視host 配置,在這裡發現
[root@localhost ~]# docker exec -it tomcat03 cat /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::
1 ip6-allnodes ff02::2 ip6-allrouters 172.17.0.4 tomcat02 fc32be6aff5c 172.17.0.5 9e655559aba4

總結:

  • --link就是在hosts配置中增加了目標物件的網路資訊,是單向的
  • 不建議使用--link,推薦使用自定義網路