文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Docker link如何实现容器互联

2023-06-22 06:54

关注

小编给大家分享一下Docker link如何实现容器互联,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

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

新建两个容器tomcat01和tomcat02

docker run -d -P --name tomcat01 tomcatdocker run -d -P --name tomcat02 tomcat

Docker link如何实现容器互联

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

Docker link如何实现容器互联

可以看到,tomcat01的IP地址为 172.17.0.2

再查看toncat02的网卡信息:

Docker link如何实现容器互联

可以看到,tomcat02的IP地址为 172.17.03

测试容器tomcat01和tomcat02是否能ping通:

tomcat01 ping tomcat02:

Docker link如何实现容器互联

tomcat02 ping tomcat01:

Docker link如何实现容器互联

根据上面两张图所示,不管是tomcat01 ping tomcat02还是tomcat02 ping tomcat01都是可以ping通的。

注:如果容器内没有ifconfig命令和ping命令,依次执行以下命令:

apt-get updateapt install iputils-pingapt install net-tools

1.2、容器间通过容器名或容器id进行网络访问

容器间如果想通过容器名进行网络连接,需要使用 docker run --link 来链接两个容器。

–link可以用来链接2个容器,使得源容器(被链接的容器)和接收容器(主动去链接的容器)之间可以互相通信,并且接收容器可以获取源容器的一些数据,如源容器的环境变量。

–link 的格式

--link <name or id>:alias

–link 添加到另一个容器的链接

name和id是源容器的name和id,alias是源容器在link下的别名。

–link 的使用实例

创建容器tomcat03,让tomcat03作为接收容器(主动去链接的容器),上面的tomcat01(别名t1)作为源容器(被链接的容器),两个容器进行链接:

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

ping tomcat01

Docker link如何实现容器互联

ping t1

Docker link如何实现容器互联

两个都能ping通,可见,tomcat01 和 t1 都指向172.17.0.2。

但上面这种链接只是单向的,就是只能接收容器链接源容器,源容器不能链接到接收容器,也就是 tomcat03 链接上了 tomcat01,tomcat03能ping通tomcat01,tomcat01并没有链接上tomcat03,tomcat01ping不同tomcat03。但是不影响tomcat01 通过IP ping tomcat03 或者tomcat03 ping tomcat01。

–link 原理

查看 tomcat03 的 hosts 文件,操作系统规定,在进行DNS请求以前,先检查系自己的hosts文件中是否有这个域名和IP的映射关系。如果有,则直接访问这个IP地址指定的网络位置,如果没有,再向已知的DNS服务器提出域名解析请求。

docker exec -it tomcat03 cat /etc/hosts

Docker link如何实现容器互联

在tomcat03的hosts配置文件中,可以看到映射了tomcat01的IP、容器名、别名和容器id,所有tomcat03可以通过指定的容器名和tomcat01进行通信。

–link 就是在接收容器(这里是名为tomcat003的容器)添加了一条关于tomcat01容器的名称解析。有了这个名称解析后就可以不使用ip来和源容器通信了,除此之外当源容器重启,docker会负责更新/etc/hosts文件,因此可以不用担心容器重启后IP地址发生了改变,解析无法生效的问题。

以上是“Docker link如何实现容器互联”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯