您现在的位置是:亿华云 > 应用开发
清晰明了:Docker的四种网络模式
亿华云2025-10-03 21:55:36【应用开发】0人已围观
简介1、closed container 封闭式网络模式相当于一座孤岛,没有网络协议栈的通信使用none模式,Docker容器拥有自己的Network Namespace,但是,并不为Docker容器进行
1、清晰closed container 封闭式网络模式
相当于一座孤岛,种网没有网络协议栈的络模通信
使用none模式,Docker容器拥有自己的清晰Network Namespace,但是种网,并不为Docker容器进行任何网络配置。络模也就是清晰说,这个Docker容器没有网卡、种网IP、络模路由等信息,清晰只有lo 网络接口。种网需要我们自己为Docker容器添加网卡、络模配置IP等。清晰
示例图如下

2、种网bridged container 桥接式网络模式
各个容器之间网络协议栈单独分离
当 Docker 启动时,络模会自动在主机上创建一个 docker0 虚拟网桥,实际上是 Linux 的一个 bridge,可以理解为一个软件交换机。它会在挂载到它的网口之间进行转发。
同时,Docker 随机分配一个本地未占用的私有网段(在 RFC1918 中定义)中的一个地址给 docker0 接口。比如典型的 172.17.42.1,掩码为 255.255.0.0。此后启动的云服务器容器内的网口也会自动分配一个同一网段(172.17.0.0/16)的地址。
当创建一个 Docker 容器的时候,同时会创建了一对 veth pair 接口(当数据包发送到一个接口时,另外一个接口也可以收到相同的数据包)。这对接口一端在容器内,即 eth0;另一端在本地并被挂载到 docker0 网桥,名称以 veth 开头(例如 vethAQI2QT)。通过这种方式,主机可以跟容器通信,容器之间也可以相互通信。Docker 就创建了在主机和所有容器之间一个虚拟共享网络。
如图所示,同一个主机的两个容器之间通过网桥doker0进行通信。(不同之间的主机上的容器通信需要借助overlay网络,涉及到一些底层协议,单独写一篇文章拿出来讲)

3、joined container 联合挂载式网络模式
容器之间可以共享网络协议栈,即可以通过套接字来进行通信
这个模式指定新创建的容器和已经存在的一个容器共享一个 Network Namespace,而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的源码库 IP,而是和一个指定的容器共享 IP、端口范围等。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。两个容器的进程可以通过 lo 网卡设备通信。
示例如下图:

4、opentainer container 开放式网络模式
与主机共享网络协议栈
Host模式使用是在容器启动时候指明--network host,此时容器共享宿主机的Network Namespace,容器内启动的端口直接是宿主机的端口,容器不会创建网卡和IP,直接使用宿主机的网卡和IP,但是容器内的其他资源是隔离的,如文件系统、用户和用户组。高防服务器直接使用宿主机网络。同样启动一个nginx,此时共享主机网络,根据情况来使用,这样子也不用做端口转发,网络传输效率会比较高(思考一下为什么)。

很赞哦!(7659)
相关文章
- .com域名是国际最广泛流行的通用域名,目前全球注册量第一的域名,公司企业注册域名的首选。国际化公司通常会注册该类域名。
- .net.cn是什么域名?.net.cn在域名圈咋样?
- 如何申请个人域名?个人申请域名怎么做?
- 中文域名有什么好?如何注册中文域名?
- 其次,一般域名注册有一个获取密码的按钮,域名注册商点击后会向您发送密码。在得到域名注册商发送的密码后,将其传输到域名服务提供商网站,然后输入密码,此时域名呈现申请状态。提交申请后,原注册人通常会向您发送一封电子邮件,询问您是否同意转让。此时,您只需点击同意转移按钮,域名注册商就可以成功转移。
- xyz域名怎么样?xyz域名怎么注册?
- 购买好域名有哪些因素?新手可以怎么进行注册?
- 游戏推荐业务中基于 sentinel 的动态限流实践
- 四、配置网站,填充内容
- 鸿蒙跨端实践-揭秘视图渲染流程