容器间的通信不建议用ip来通信
通信的时候用容器名字
图中已启动两个容器,tomcat容器只需要单向的向mysql容器获取数据(mysql不用知道有没有tomcat这个容器存在),这个时候可以用ip进行通信。但是有一天mysql容器不用了,又重新run了一个,那么ip地址也会随之改变。
问题来了:
mysql容器的IP变了,但是tomcat这个容器不知道,所以就获取数据失败了,怎么办?
,这时候需要用到单向通信--link
即可解决,在你重新run一个mysql容器的时候,--name
娶一个名字,或者使tomcat直接link到这个mysql的name上,即可解决。
(tomcat连接数据库的时候,在jdbc,用的是ip通信,这时候只需要换成–name后的名字,就不用考虑ip地址的变换了)
1.单向通信
1.1 ip地址通信
启动两个容器如下:
[root@centos7-docker ~]# docker run -itd centos /bin/bash
2778c5ce27532d1566064a9d0aeed7bca000ad2fce2ac53a41bba55342e277c0
[root@centos7-docker ~]# docker inspect 277 | grep -i ipaddr
"SecondaryIPAddresses": null,
"IPAddress": "172.17.0.2",
"IPAddress": "172.17.0.2",
###############################################################3
[root@centos7-docker ~]# docker run -itd tomcat
1b7714d75a2bc5f