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 网络名
?
?
?
|