问题引入
思考一个场景,我们编写了一个微服务,当中数据库的配置database url=ip:3306,我们想要项目不重启,将数据库ip换掉(停掉容器,重启),我们希望可以用名字来进行访问容器
[root@master ~]# docker exec -it tomcat02 ping tomcat01
ping: unknown host tomcat01
# 如何可以解决呢?
[root@master ~]# docker exec -it tomcat02 ping tomcat01
ping: unknown host tomcat01
# 通过--link既可以解决了网络连通问题
docker run -d -P --name tomcat03 --link tomcat02 tomcat:8.0
docker exec -it tomcat03 ping tomcat02
# 反向可以ping通吗?
[root@master ~]# docker exec -it tomcat02 ping tomcat03
ping: unknown host tomcat03
探究:inspect

其实tomcat03 就是在本地配置了tomcat02的配置
# 查看tomcat03的hosts配置,在这里发现
docker exec -it tomcat03 cat /etc/hosts

–link 就是我们在hosts配置中增加了一个tomcat02的映射!
我们现在已经不建议使用–link了!
我们需要的是自定义网络,不使用docker0!
docker0问题:他不支持容器名连接访问!
本文探讨了如何避免使用docker0网络,改用自定义网络来实现在不重启服务的情况下,通过容器名称而非IP地址访问容器。介绍了`--link`的局限性,重点讲解了使用自定义网络和容器名映射的方法,以及为何--link已不再推荐。

1259

被折叠的 条评论
为什么被折叠?



