0
点赞
收藏
分享

微信扫一扫

docker基础(17):Docker网络之--Link

婉殇成长笔记 2022-03-19 阅读 65
docker

文章目录

准备工作

启动两个tomcat容器

#启动tomcat01
docker run -d -P --name tomcat01 lengcz/tomcat:1.0
#启动tomcat02
docker run -d -P --name tomcat02 lengcz/tomcat:1.0

在这里插入图片描述


–Link的使用

现实问题
我们的微服务通常需要数据库,如果微服务里配置的数据库 ip发生了变化,那我们肯定就没办法访问了。
我们能否通过服务名进行访问?
jdbc:mysql://mysql:3306,这样的话哪怕mysql重启,我们也不需要修改配置了!docker提供了 --link
的操作!
下面的示例,从tomcat02去ping tomcat01容器名是ping不通的。

docker exec -it tomcat02 ping tomcat01

在这里插入图片描述
使用–link
下面我们启动一个tomcat03,在启动的时候连接tomcat02

docker run -d -P --name tomcat03 --link tomcat02 lengcz/tomcat:1.0

在这里插入图片描述
此时,我们再用tomcat03去ping tomcat02,我们发现是可以直接ping通容器名称。
在这里插入图片描述
使用tomcat03 去ping tomcat01,无法ping 通过,说明这两者没有连接。
在这里插入图片描述
反之,使用tomcat02去ping tomcat03 ,同样无法ping通,说明–link是单向连通的。
在这里插入图片描述

为什么tomcat03可以ping通tomcat02?

查看tomcat03的host文件

docker exec -it tomcat03 cat /etc/hosts

在这里插入图片描述

最终,我们发现tomcat03实际上是将tomcat02配置到了容器内的host文件里,这就是–link的本质。

结尾

–link早都过时了,我们不推荐使用!我们可以使用自定义网络的方式

举报

相关推荐

0 条评论