Docker 容器互联--link

本文探讨了如何避免使用docker0网络,改用自定义网络来实现在不重启服务的情况下,通过容器名称而非IP地址访问容器。介绍了`--link`的局限性,重点讲解了使用自定义网络和容器名映射的方法,以及为何--link已不再推荐。

问题引入

思考一个场景,我们编写了一个微服务,当中数据库的配置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问题:他不支持容器名连接访问!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值