1. 网络模式
1. bridge
--net=bridge
默认网络,docker创建后创建一个docker0网桥,默认创建的容器也是添加到网桥中.
也可以是自定义网络,相比默认的具备内部DNS发现,可以通过容器名容器之间网络通信.
1.1 查看网卡
docker network ls
1.2 创建自定义网卡
docker network create test
1.3 查看自定义网卡详细信息
docker network inspect test
1.4 自定义网卡间通过容器名互相通信
创建两个虚拟机查看容器名
docker run -it --network test busybox
查看本地网卡信息
yum install bridge-utils
2. host
--net=host
容器不会获得一个独立的network namespace,而是与宿主机公用一个,这就意味着容器不会有自己的网卡信息,而是使用宿主机.容器除了网络,其他都是隔离的.
docker exec -it busy_austin sh
通过ifcong查看网卡信息同于宿主机
3.none
--net=none
获取独立的network namespace,但不为容器进行任何网络配置,需要手动配置
docker run -it --net=none busybox sh
手动配置定制网络
4.container
--net=container:Name/ID
与指定的容器使用同一个network namespace,具有同样的网络配置信息,两个容器除了网络,其他都还是隔离的
先创建一个容器
docker run -itd --name web02 busybox
创建一个容器和web02公用一个命名空间
docker run -it --net=container:web02 --name web01 busybox
查看网卡信息发现两个容器网卡信息相同
5.应用场景
bridge 默认网络
host 希望使用宿主机网络
none 手动配置容器网络,对接公司IPAM
container 希望容器与另一个容器在一个网络命名空间,lnmp
6. 网络模型
1. veth pair
成对初心的一种虚拟网络设备,数据从一端进,从另外一端出.用于解决网络命名空间之间的隔离.
2.docker0
网桥是一个二层网络设备,通过网桥可以将linux指出的不同的端口链接起来,并实现类似交换机那样的多对多通信