1.Docker 网络配置

当你安装了docker,它会自动创建3个网络可以使用 docker network ls 命令来查看

1.1 bridge模式

当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器会连 接到这个虚拟网桥上。

虚拟网桥的工作方式和物理交换机类似,这样主机上的所有容器就通过交换机连在了一个二层网络中。
从docker0子网中分配一个IP给容器使用,并设置docker0的IP地址为容器的默认网关。
在主机上创建一对虚拟网卡veth pair设备,Docker将veth pair设备的一端放在新创建的容器中,并命名 为eth0(容器的网卡),另一端放在主机中,以vethxxx这样类似的名字命名,并将这个网络设备加入 到docker0网桥中。

bridge模式是docker的默认网络模式,不写--net参数,就是bridge模式。

查看bridge信息

docker inspect bridge

docker0就像是一个路由器,容器就像是路由器下的设备,它们在同一个网段内,可以互相ping通。
 

1.1.1 外部访问

当我们需要访问容器时,只需要访问主机即可,但是并不知道主机访问端口。

设置端口映射

docker run -itd --name bridge03 -p 8081:8080 spring:1.0

创建容器时将容器的8080端口映射到主机的8081端口,在外部访问时只需要访问主机的8081端口即可。

bridge效果 

1.2 host模式 

如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace,而是 和宿主机共用一个Network Namespace。
容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。
但是,容器的其他方面,如文件系统、进程列表等还是和宿主机隔离的。

创建容器 

docker run -itd --name host01 --net=host spring:1.0

host效果 


1.3 创建自定义网络(自定义IP)

1.3.1 创建网络

docker network create --subnet 172.18.0.0/16 mynet

 

1.3.2 删除网络

docker network rm 网络名

 

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐