文章目录
- 1 虚拟化 络
- 2 单节点容器间通信
- 3 不同节点容器间通信
- 4 Docker容器 络
- 5 Docker的四种 络模式
-
- 5.1 host模式
- 5.2 container模式
- 5.3 none模式
- 5.4 bridge模式
1 虚拟化 络
-
Linux内核支持六种名称空间,只要在用户空间有相应的客户端工具,都可以对对应的名称空间进行操作。
- 主机名和域名的叫:UTS
- 用户的叫:USER
- 挂载文件系统的:Mount
- 进程间通信的:IPC
- 进程ID的:Pid
- 络的:Net
-
络作为docker容器化实现的6个名称空间的其中之一,是必不可少的。其在Linux内核2.6时已经被加载进内核支持了。
-
络名称空间主要用于实现 络设备和协议栈的隔离
-
Linux内核支持二层和三层设备的模拟,宿主机的docker0就是用软件来实现的具有交换功能的虚拟二层设备,docker中的 卡设备是成对出现的,好比 线的两头,一头处于docker中,另外一头在docker0桥上,这个使用brctl工具就能实现。
3 不同节点容器间通信
4 Docker容器 络
Docker在安装后自动提供3种 络,可以使用命令查看
Docker使用Linux桥接,在宿主机虚拟一个Docker容器 桥,Docker启动一个容器时会根据Docker 桥的 段分配给容器一个IP地址,称为,同时Docker 桥是每个容器的默认 关。因为在同一宿主机内的容器都接入同一个 桥,这样容器之间就能够通过容器的直接通信。
5 Docker的四种 络模式
络模式 配置 说明 host –network host 容器和宿主机共享Network namespace container –network container:NAME_OR_ID 容器和另外一个容器共享Network namespace none –network none 容器有独立的Network namespace, 但并没有对其进行任何 络设置, 如分配veth pair 和 桥连接,配置IP等 bridge –network bridge 默认模式 Docker创建容器时,使用选项–network来指定使用哪种 络模型。默认default为bridge (docker0)
5.2 container模式
- 这个模式指定新创建的容器和已经存在的一个容器共享一个 Network Namespace,而不是和宿主机共享。新创建的容器不会创建自己的 卡,配置自己的 IP,而是和一个指定的容器共享 IP、端口范围等。同样,两个容器除了 络方面,其他的如文件系统、进程列表等还是隔离的。两个容器的进程可以通过 lo 卡设备通信。
- Container 络模式是 Docker 中一种较为特别的 络的模式。处于这个模式下的 Docker 容器会共享其他容器的 络环境,因此,至少这两个容器之间不存在 络隔离,而这两个容器又与宿主机以及除此之外其他的容器存在 络隔离。
5.3 none模式
使用none模式,Docker容器拥有自己的Network Namespace,但是,并不为Docker容器进行任何 络配置。也就是说,这个Docker容器没有 卡、IP、路由等信息。需要我们自己为Docker容器添加 卡、配置IP等。
这种 络模式下容器只有lo回环 络,没有其他 卡。none模式可以在容器创建时通过–network none来指定。这种类型的 络没有办法联 ,封闭的 络能很好的保证容器的安全性。
应用场景:
- 启动一个容器处理数据,比如转换数据格式
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!