1. 极牛网首页
  2. 云计算

清晰明了:Docker的四种网络模式

1. closed container 封闭式网络模式

相当于一个孤岛。没有网络协议栈的通信

不使用任何模式。Docker容器有自己的网络命名空间,但不为Docker容器进行任何网络配置。换句话说,这个码头集装箱没有网卡,知识产权,路由和其他信息,只有网络接口。我们需要自己添加网卡和配置码头集装箱的知识产权。

示例图如下:

清晰明了:docker的四种网络模式

2. bridged container 桥接式网络模式

容器之间的独立网络协议栈

当Docker启动时,将在主机上自动创建一个docker0虚拟桥,它实际上是一个Linux的桥,可以理解为一个软件交换机。它将在安装到其上的端口之间向前移动。

同时,Docker从本地未被占用的专用网段(定义在RFC1918中)随机分配一个地址给docker0接口。例如,典型的172.17.42.1掩码是255.255.0.0。之后,容器中启动的网络端口将自动分配同一网段的地址(172.17.0.0/16)。

创建Docker容器时,也会创建一对veth接口(当一个数据包发送到一个接口时,另一个接口也可以接收相同的数据包)。这对接口的一端在容器中,即eth0另一端是本地的,安装在docker0桥上,其名称以veth开头(例如vethAQI2QT)。这样,主机可以与容器通信,容器也可以彼此通信。Docker在主机和所有容器之间创建一个虚拟共享网络。

如图所示,同一主机的两个容器通过网桥doker0进行通信。(不同主机上的容器通信需要使用覆盖网络,这涉及一些底层协议。写一篇单独的文章并拿出来)

清晰明了:docker的四种网络模式

3. joined container 联合挂载式网络模式

容器可以共享网络协议栈,也就是说,它们可以通过套接字进行通信

此模式指定新创建的容器和现有容器共享一个网络命名空间而不是主机。新创建的容器不会创建自己的网卡和配置自己的IP,但会共享IP、端口范围等。用指定的容器。类似地,除了网络方面,文件系统和进程列表等其他容器仍然是隔离的。两个容器的进程可以通过本地网卡设备进行通信。下图显示了

示例:

清晰明了:docker的四种网络模式

4. opentainer container 开放式网络模式

与主机共享网络协议栈当容器启动时会指示使用

清晰明了:Docker的四种网络模式

主机模式-网络主机。此时,容器共享主机的网络命名空间。容器中启动的端口直接是主机的端口。容器不创建网卡和IP,而是直接使用主机的网卡和IP。但是,容器中的其他资源是隔离的,例如文件系统、用户和用户组。直接使用主机网络。也启动一个nginx,此时共享主机网络,根据使用情况,这种方式也不用做端口转发,网络传输效率会更高(想想为什么)。

极牛网精选文章《清晰明了:Docker的四种网络模式》文中所述为作者独立观点,不代表极牛网立场。如若转载请注明出处:https://jikenb.com/4373.html

发表评论

登录后才能评论