详解码头工人容器如何互相连接

介绍

小编这次要给大家分享的是详解码头工人容器如何互相连接,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。

码头工人容器间的互连通信有三种方法:

    <李>码头工人内部网络:不够灵活强大,不推荐李 <>李码头工人网络:1.9或更新版本,推荐使用 <李>码头工人链接:1.9之前版本适用。

<强> 1.码头工人内部网络

涉及码头工人自己的网络栈。

安装码头工人后,系统会创建一个新的网络接口,名字是docker0,用于连接容器和宿主机,IP范围是172.16 - -172.30,

每个码头工人容器都会在这个接口上分配一个IP地址。

码头工人每创建一个容器就会创建一组互联的网络接口,一端是容器里的eth0接口,另一端则在宿主机以veth开头命名,

通过把每个veth接口绑定到docker0网桥,码头工人创建了一个虚拟子网,这个子网由宿主机和所有的码头工人容器共享,

实现容器和宿主机的通信连接,注意只有容器运行时veth接口才存在。

用内部网络实现容连互联的弊端:

    <李>要在容器的应用程序里对另一个容器的IP地址做硬编码; <李>容器重启后,IP地址可能会改变,李 <李>不够方便和灵活。

<强> 2。码头工人网络

容器之间的连接用网络创建。

允许用户创建自己的网络,容器通过这个网络互相通信;

可以跨越不同的宿主机来通信,网络配置也更灵活;

可以在无需更新连接的情况下,停止,启动或者重启容器;

不必事先创建容器再去连接它,也不必关心容器的运行顺序,可以在网络内部获得容器名解析和发现,

和码头工人组成以及群进行了集成;

在码头工人网络内部启动的容器,会感知到所有在这个网络下运行的容器,

并通过/etc/主机文件将这些容器的地址保存到本地DNS中,
网络内的任何主机都可以使用主机名或hostname.netname的形式来被解析访问,

如果任何一个容器重启了,其IP地址会自动在/etc/主机文件中更新。

测试中发现/etc/主机文件中好像没有新增其他容器的地址,但也能互相ping通,

一个容器可以同时加入多个网络,所以可以创建非常复杂的网络模型;

    <李>码头工人网络创建创建一个网络李 <>李码头工人网络检查查看网络的详细信息李 <>李码头工人网络ls列出当前系统中的所有网络李 <>李码头工人网络连接将已有容器连接到一个网络李 <>李码头工人网络断开从网络中断开一个容器 <李>码头工人网络rm删除一个或多个网络李 <>李码头工人网络修剪删除所有未使用的网络李

<强> 3。码头工人链接

在链接过程中要引用到容器的名字,且只能工作于同一台宿主机中。

在码头工人运行启动容器时用参数——链接创建两个容器间的客户——服务链接,

需要两个参数,一个是链接容器的名字,一个是链接的别名,即——链接复述:db,

被链接的容器是服务,链接让服务容器能够和客户容器通信,

客户容器可直接访问服务容器的任意公开端口,所以服务容器的端口不需要对本地宿主机公开,相对更加安全。

可以把多个客户容器链接到同一个服务容器,也可通过指定多次——链接来链接到多个服务容器,

码头工人在容器的/etc/主机文件和包含链接信息的环境变量里写入链接信息;

无论采用哪种方式,都可以创建一个网站应用程序栈,包含以下组件:

    <李>一个Web服务器容器 <李>一个复述,数据库容器 <李>两个容器间的一个安全链接李

看完这篇关于详解码头工人容器如何互相连接的文章,如果觉得文章内容写得不错的话,可以把它分享出去给更多人看到。

详解码头工人容器如何互相连接