千家信息网

Docker link如何实现容器互联

发表于:2025-02-11 作者:千家信息网编辑
千家信息网最后更新 2025年02月11日,小编给大家分享一下Docker link如何实现容器互联,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.1、容器间通过I
千家信息网最后更新 2025年02月11日Docker link如何实现容器互联

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

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

新建两个容器tomcat01和tomcat02

docker run -d -P --name tomcat01 tomcatdocker 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命令,依次执行以下命令:

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

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

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

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

-link 的格式

--link :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

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。

-link 原理

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

docker exec -it tomcat03 cat /etc/hosts

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

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

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

容器 链接 两个 别名 命令 地址 文件 网络 通信 名字 篇文章 互联 主动 信息 内容 名称 域名 就是 网卡 测试 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 郑州网络安全大会 控制网络技术答案 澳洲的网络安全问题 国企软件开发岗有编制吗 数据库实验三安全性和完整性 高中网络安全手抄报 聊城电商软件开发企业 php数据库表值修改后无法保存 在公司电脑能部署服务器吗 什么是ios软件开发 后端数据库往前端传输数据 车身控制器软件开发要学几年 恢复数据库要备份哪些东西 张掖租房网络安全 oracle数据库简历 未变异者服务器允许作弊命令 服务器上怎么添加网络连接 数据库中的双层查询 公司sap连接服务器方法 如何往服务器上传文件 苹果文件服务器怎么连接电脑 软件开发行业如何开展业务 落实网络安全整改实施方案 数据库是什么软件 世界第一个数据库 终端设备是相对于服务器而言的吗 数据库营销是啥意思 服务器如何分辨有没有做raid 武汉艾迪互联网科技有限公司 哪些学校复试考数据库原理呀
0