文章目录
一、docker网络
1、实现原理
①docker使用linux桥接,在宿主机虚拟一个docker的容器网桥docker0.
②docker启动一个容器时会根据网桥的网段分配给容器一个IP地址,称为Container-IP。
③docker网桥时每一个容器的默认网关。同一个宿主机内的容器都接入同一个网桥,这样容器之间就能通过容器的COntainer-IP通信。
2、网络模式
Host:容器不会虚拟出自己的网卡、配置自己的IP等,而是使用宿主机的IP和端口
Container:创建的容器不会创建自己的网卡、配置自己的IP,而是和一个指定给的容器共享IP和端口范围。
None:该模式关闭了容器的网络功能。
Bridge:默认为该模式,桥接。此模式会为每一个容器分配、设置IP等,并将容器来年接到一个docker0的虚拟网桥,通过docker0的网段以及iptables的nat表配置与宿主机通信。
①Host模式
使用–net=host指定。相当于VM的桥接模式,与宿主机同一网络,但是没有独立IP。
docker使用linux的Namespace技术来进行资源隔离(6个命名空间)
一个network namespace提供了一个独立的网络环境,包括网卡、路由、iptables规则等,都与其他network namespace隔离。
但是如果启动容器的时候使用host模式,那么这个容器不会获得一个独立的network namespace,而是和宿主机共用一个。容器将不会虚拟出自己的网卡、配置自己的IP