Docker容器间通信的三种方式分别是什么


Docker容器间通信的三种方式分别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。容器之间可通过 IP,Docker DNS Server 或 joined 容器三种方式通信。两个容器要能通信,必须要有属于同一个网络的网卡。满足这个条件后,容器就可以通过 IP 交互了。具体做法是在容器创建时通过--network指定相应的网络,或者通过docker network connect将现有容器加入到指定网络。通过 IP 访问容器虽然满足了通信的需求,但还是不够灵活。因为我们在部署应用之前可能无法确定 IP,部署之后再指定要访问的 IP 会比较麻烦。对于这个问题开发云主机域名,可以通过 docker 自带的 DNS 服务解决。从 Docker 1.10 版本开始,docker daemon 实现了一个内嵌的 DNS server,使容器可以直接通过“容器名”通信。方法很简单,只要在启动时用--name为容器命名就可以了。下面启动两个容器 bbox1 和 bbox2:docker run -it –network=my_net2 –name=bbox1 busyboxdocker run -it –network=my_net2 –name=bbox2 busybox然后,bbox2 就可以直接 ping 到 bbox1 了使用 docker DNS 有个限制:只能在 user-defined 网络中使用。也就是说,默认的 bridge 网络是无法使用 DNS 的。下面验证一下:创建 bbox3 和 bbox4,均连接到 bridge 网络。docker run -it –name=bbox3 busyboxdocker run -it –name=bbox4 busyboxbbox4 无法 ping 到 bbox3。joined 容器是另一种实现容器间通信的方式。joined 容器非常特别,它可以使两个或多个容器共享一个网络栈,共享网卡和配置信息,joined 容器之间可以通过 127.0.0.1 直接通信。请看下面的例子:先创建一个 httpd 容器,名字为 web1。

docker run -d -it –name=web1 httpd

然后创建 busybox 容器并通过--network=container:web1指定 jointed 容器为 web1请注意 busybox 容器中的网络配置信息,下面我们查看一下 web1 的网络看!busybox 和 web1 的网卡 mac 地址与 IP 完全一样,它们共享了相同的网络栈。busybox 可以直接用 127.0.0.1 访问 web1 的 http 服务。joined 容器非常适合以下场景:不同容器中的程序希望通过 loopback 高效快速地通信,比如 web server 与 app server。希望监控其他容器的网络流量,比如运行在独立容器中的网络监控程序。关于Docker容器间通信的三种方式分别是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注开发云行业资讯频道了解更多相关知识。

相关推荐: 利用虚拟主机如何发布网站

利用虚拟主机如何发布网站?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。利用虚拟主机发布网站,首先要将域名与虚拟主机绑定以及解析,然后是上传网站程序到虚拟主机下,这样就将一个网站发布出去了。虚拟…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 05/26 12:07
下一篇 05/26 12:13

相关推荐