1. 运行两个tomcat实例,并进入容器内部
docker run -d -p 8081:8080 --name tomcat81 billygoo/tomcat8-jdk8
docker exec -it tomcat81 bash
docker run -d -p 8082:8080 --name tomcat82 billygoo/tomcat8-idk8
docker exec -it tomcat82 bash
2. ping一下各自的ip,查看可以顺利 ping 通
3. 按照服务名进行 ping,显示 Name or service not known错误
4. 由于ip地址是经常变化的,直接对服务名进行ping更符合实际需求,因为服务名是不会改变的。因此如何解决上述问题呢?
(1) 新建自定义网络,默认使用桥接网络 bridge
docker network create wmq_net
(2) 新建容器加入上一步新建的自定义网络
docker run -d -p 8081:8080 --network wmq_net --name tomcat81 billygoo/tomcat8-jdk8
docker run -d -p 8082:8080 --network wmq_net --name tomcat82 billygoo/tomcat8-jdk8
(3) 互相ping测试,即可以通过服务名直接ping通
docker exec -it tomcat81 bash
ping tomcat82
docker exec -it tomcat82 bash
ping tomcat81
5. 结论
自定义网络本身就维护好了主机名和ip的对应关系(ip和域名都能通)!!!
注:本文部分图文内容来自于 docker network之自定义网络 的学习笔记,仅供参考。如看其他Docker内容,可看我博客Docker系列aaron_neil_Dcoker系列,持续更新中。