目录
Docker 网络
lo0:回环网卡、TCP/IP网卡是否生效
virbr0 自身继承了一个虚拟化功能(KVM 架构),原生架构的一个虚拟化平台,安装了一个虚拟化平台之后就会自动安装虚拟网卡
docker 0 : 容器的网关,绑定物理网卡,负责做NAT 地址转换、端口映射,本身也是一个容器
ens33: 实体物理网卡
Docker 网络图解
Docker 四种网络模式
Host 模式
host模式 : -net=host 容器和宿主机共享Network namespace
host容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的NetworkNamespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。但是,容器的其他方面,如文件系统、进程列表等还是和宿主机隔离的。
使用host模式的容器可以直接使用宿主机的IP地址与外界通信,容器内部的服务端口也可以使用宿主机的端口,不需要进行NAT, host最大的优势就是网络性能比较好,但是dockerhost上已经使用的端口就不能再用了,网络的隔离性不好。
Container模式
container模式:-nat=containner:name or ID 容器和另外一个容器共享network namespace
这个模式指定新创建的容器和已经存在的一个容器共享一个network namespace,而不是和宿主机共享,新创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定地容器共享Ip、端口范围等,同样,两个容器除了网络方面,其他的如文件系统、选程列表还是隔高的. (两个容器的进程可以通过lo0网卡设备通信)
None模式
none模式: -net=none 容器有独立的Network namespace ,但并没有对其进行任何网络设置,如分配veth -pair 和网桥连接,配置IP 等
这种网络模式下客器只有lo回环网口,役有其他的网卡, none模式可以在容器创建时通过-netwokr=none 参数指定
这种类型的网络无法联网,但是封闭的网络能很好的保证容器的安全性
Bridge模式是docker的默认网络模式,不写-net参数,就是bridge模式。使用docker run-p时, docker实际是在iptables做了DNAT规则,实现端口转发功能。可以使用iptables t nat-vn查看。
Bridge模式
Bridge:此模式会为每一个容器分配、设置IP等,并将容器连接到一个docker虚拟网桥,通过docker0网桥及iptables.的net表配置与宿主机通信
当Docker进程启动时,会在主机上创建一个