ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【docker】4种网络模式

2022-03-27 15:31:16  阅读:147  来源: 互联网

标签:容器 宿主机 namespace 网络 模式 网卡 docker Docker


bridge模式

使用--net=bridge指定,Docker的默认设置,这种模式创建出来的docker容器链接到Dcoker网桥上(docker0网桥或者其它自定义的网桥):
1)创建一对虚拟网卡(veth pair)
2)赋予其中一块网卡一个类似“veth65f9”的名字,将其留在宿主机root network namespace中,并绑定到Docker网桥上
3)将另一块网卡放入新创建的network namespace中(docker容器中),命名为eth0
4)从Docker网桥的子网中选取一个未使用的IP非配给eth0,并为Docker容器设置默认路由,默认网关为Docker网桥

此模式与外界通信使用NAT协议,增加了通信的复杂性,在复杂场景下使用会有诸多限制。

host模式

使用--net=host指定。Docker容器中的进程处于宿主机的网络环境中,相当于docker容器和宿主机公用一个network namespace,使用宿主机的网卡、IP、端口等信息。但是容器其它方面,如文件系统、进程列表等还是和宿主机隔离的。
host模式很好地解决了容器与外界通信的地址转换问题,可以直接使用宿主机的IP进行通信,但是也降低了隔离性,同事还会引起网络资源的竞争和冲突。

container模式

container模式和host模式类似,指定新创建的容器和已经存在的某个容器共享同一个network namespace。都是共享network namespace,区别就在于host模式与宿主机共享,而container模式与某个存在的容器共享。新创建的容器不会创建自己的网卡,也不配置IP,而是与一个指定的容器共享IP、端口范围等。同样,两个容器除了网络方面,其它的如文件系统、进程列表等还是隔离的。
在这种模式下,两个容器的进程可以通过lo回环网卡设备通信,增加了容器间通信的便利性和效率。
container模式的应用场景就在于可以将一个应用的多格组件放在不同的容器中,这些容器配置为container模式的网络,这样他们就可以作为一个整体对外提供服务。同样,这种模式也降低了容器间的隔离性

none模式

这种模式下,docker容器拥有自己的network namespace,但是,并不为docker容器进行任何网络配置。也就是说,这个docker容器除了netwokr namespace自带的loopback网卡外没有其他任何网卡、IP、路由等信息,需要用户为Docker容器添加网卡、配置IP等。
这种模式如果不进行特定的配置是无法正常使用的,但是优点也非常明显,它给了用户最大的自由度来自定义容器的网络环境。

--- 以上摘自《Docker容器与容器云》

标签:容器,宿主机,namespace,网络,模式,网卡,docker,Docker
来源: https://www.cnblogs.com/topicjie/p/16062972.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有