Docker网络模式
2021/11/24 23:40:07
本文主要是介绍Docker网络模式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 一、Docker的四种网络模式
- 二、四种模式理解
- 1.host模式
- 2.bridge模式
- 3 none模式
- 4 container模式
如有错误,希望大家批评指正,日拱一卒,功不唐捐。
一、Docker的四种网络模式
网络模式 | 配置 | 说明 |
---|---|---|
host模式 | -net=host | 容器和宿主机共享Network namespace。 |
container模式 | -net=container:NAME_or_id | 容器和另外一个容器共享Network namespace。 kubernetes中的pod就是多个容器共享一个Network namespace。 |
none模式 | -net=none | 容器有独立的Network namespace,但并没有对其进行任何网络设置,如分配veth pair 和网桥连接,配置IP等。 |
bridge模式 | -net=bridge | 默认为此模式 |
二、四种模式理解
1.host模式
顾名思义,就是与宿主机共用Network namespace。容器不会虚拟出自己的网卡,配置自己的ip等,而是使用宿主机的ip和断开,但是除了网络,容器的其它内容还是与宿主机隔离的。
在启动容器的时候,映射主机端口,如图所示,container1映射了主机4080端口,container映射主机4081端口,当访问host的4080和4081端口时,主机则自动转发到容器,即相当于访问容器。
个人理解,当以host网络模式启动容器时,如果没有显式映射主机端口,则在容器内运行服务后会自动映射到主机端口,因为容器现在使用的是host的ip。
使用host模式的容器可以直接使用宿主机的ip与外界通信,网络性能比较好,但是端口使用受限。
2.bridge模式
bridge的翻译就是桥,所以bridge模式就是通过一个虚拟的bridge将多个容器连接起来。类比集群,每一个容器相当于集群种的一个物理节点,而bridge就相当于集群种的交换机,交换机实现多个物理节点直接的连接,同样,虚拟网桥实现多个容器之间的连接。
当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器会连接到这个虚拟网桥上
如果容器启动时不指定网络规则,则默认是该种方式。
3 none模式
在none模式下,每个容器都有自己的network namespace,但是每一个容器都是封闭的个体,不与外界交互,可以很好的保持封闭性。
4 container模式
container模式指的是与已经创建的容器共享一个network space,而不是和host共享。新创建的容器不会创建自己的网卡,配置自己的 IP,而是和一个指定的容器共享 IP、端口范围等。两个容器通过lo网卡进行通信。
但是该种模式下,随着容器数量的增多,容器之间的界限划分可能会混乱,不推荐使用。
这篇关于Docker网络模式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24Docker环境部署资料详解
- 2024-12-24Docker环境部署教程:新手入门详解
- 2024-12-24Docker环境部署项目实战教程
- 2024-12-24Docker环境部署学习:初学者指南
- 2024-12-24Docker环境部署入门:新手必读指南
- 2024-12-20Docker部署资料:新手入门教程
- 2024-12-19Docker部署实战:新手入门教程
- 2024-12-19Docker部署教程:新手入门详解
- 2024-12-09云原生周刊:在Docker上部署大语言模型
- 2024-12-05Docker教程:新手快速入门指南