设为首页收藏本站

安徽论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10360|回复: 0

Docker link实现容器互联的方式

[复制链接]

110

主题

0

回帖

342

积分

中级会员

Rank: 3Rank: 3

积分
342
发表于 2022-3-26 11:00:19 | 显示全部楼层 |阅读模式
网站内容均来自网络,本站只提供信息平台,如有侵权请联系删除,谢谢!
目录


1.1、容器间通过IP进行网络访问

新建两个容器tomcat01和tomcat02
  1. docker run -d -P --name tomcat01 tomcat
  2. docker run -d -P --name tomcat02 tomcat
复制代码

使用 ifconfig 命令查看toncat01的网卡信息:

可以看到,tomcat01的IP地址为 172.17.0.2
再查看toncat02的网卡信息:

可以看到,tomcat02的IP地址为 172.17.03
测试容器tomcat01和tomcat02是否能ping通:
tomcat01 ping tomcat02:

tomcat02 ping tomcat01:

根据上面两张图所示,不管是tomcat01 ping tomcat02还是tomcat02 ping tomcat01都是可以ping通的。
注:如果容器内没有ifconfig命令和ping命令,依次执行以下命令:
  1. apt-get update
  2. apt install iputils-ping
  3. apt install net-tools
复制代码
1.2、容器间通过容器名或容器id进行网络访问

容器间如果想通过容器名进行网络连接,需要使用 docker run --link 来链接两个容器。
–link可以用来链接2个容器,使得源容器(被链接的容器)和接收容器(主动去链接的容器)之间可以互相通信,并且接收容器可以获取源容器的一些数据,如源容器的环境变量。
  1. –link 的格式
复制代码
  1. --link <name or id>:alias
复制代码
–link 添加到另一个容器的链接
name和id是源容器的name和id,alias是源容器在link下的别名。
  1. –link 的使用实例
复制代码
创建容器tomcat03,让tomcat03作为接收容器(主动去链接的容器),上面的tomcat01(别名t1)作为源容器(被链接的容器),两个容器进行链接:
  1. docker run -d -P --name tomcat03 --link tomcat01:t1 tomcat
复制代码
tomcat01 是上面启动的 7b94f50c43ea 容器的名字,这里作为源容器,t1 是该容器在link下的别名(alias),通俗易懂的讲,站在tomcat03容器的角度,tomcat01 和 t1 都是 7b94f50c43ea 容器的名字,并且作为容器的hostname,tomcat03 用这2个名字中的哪一个都可以访问到 7b94f50c43ea 容器并与之通信(docker通过DNS自动解析)。
进行链接测试:tomcat03 ping tomcat01
  1. ping tomcat01
复制代码
  1. ping t1
复制代码

两个都能ping通,可见,tomcat01 和 t1 都指向172.17.0.2。
但上面这种链接只是单向的,就是只能接收容器链接源容器,源容器不能链接到接收容器,也就是 tomcat03 链接上了 tomcat01,tomcat03能ping通tomcat01,tomcat01并没有链接上tomcat03,tomcat01ping不同tomcat03。但是不影响tomcat01 通过IP ping tomcat03 或者tomcat03 ping tomcat01。
  1. –link 原理
复制代码
查看 tomcat03 的 hosts 文件,操作系统规定,在进行DNS请求以前,先检查系自己的hosts文件中是否有这个域名和IP的映射关系。如果有,则直接访问这个IP地址指定的网络位置,如果没有,再向已知的DNS服务器提出域名解析请求。
  1. docker exec -it tomcat03 cat /etc/hosts
复制代码

在tomcat03的hosts配置文件中,可以看到映射了tomcat01的IP、容器名、别名和容器id,所有tomcat03可以通过指定的容器名和tomcat01进行通信。
–link 就是在接收容器(这里是名为tomcat003的容器)添加了一条关于tomcat01容器的名称解析。有了这个名称解析后就可以不使用ip来和源容器通信了,除此之外当源容器重启,docker会负责更新/etc/hosts文件,因此可以不用担心容器重启后IP地址发生了改变,解析无法生效的问题。
到此这篇关于Docker link实现容器互联的文章就介绍到这了,更多相关docker 容器互联内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
                                                        
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
免责声明
1. 本论坛所提供的信息均来自网络,本网站只提供平台服务,所有账号发表的言论与本网站无关。
2. 其他单位或个人在使用、转载或引用本文时,必须事先获得该帖子作者和本人的同意。
3. 本帖部分内容转载自其他媒体,但并不代表本人赞同其观点和对其真实性负责。
4. 如有侵权,请立即联系,本网站将及时删除相关内容。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表