一、网络模式介绍
●Host:容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。
●Container:创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围。
●None:该模式关闭了容器的网络功能。
●Bridge:默认为该模式,此模式会为每一个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥,通过docker0网桥以及iptables nat 表配置与宿主机通信。
本文重点介绍默认模式Bridge
二、网桥介绍
网桥可以理解我们熟悉交换机的前身,也可以成为软件形态的交换机。众所周知,交换机是用来实现帧的转换,通俗来说就行实现在同一个网络内不同主机的数据通信,同理网桥也具备该功能
三、虚拟网卡技术
虚拟网卡技术即veth,让两个隔离的网络命名空间之间可以互相通信。(注:命名空间是Linux内核提供的一种进程隔离技术,用于隔离进程的运行环境,包括文件系统挂载点、进程ID、网络接口、UTS名称等。通过使用命名空间,可以创建具有独立运行环境的进程,使其对其他进程和系统资源不可见。) 基于命名空间的解释之后,veth技术是为了实现两个不同网络命名空间进程之间网络通信。
网络命令空间即 network namespace
在 Linux 内核 2.6
版本引入,作用是隔离 Linux 系统的设备,以及 IP 地址、端口、路由表、防火墙规则等网络资源
。