- 默认为 bridge
--net=bridge
默认网络,Docker启动后创建一个docker0
网桥,默认创建的容器也是添加到这个网桥中。
//查看网卡信息
ifconifg
- host
--net=host
容器不会获得一个独立的network namespace,而是与宿主机共用一个。这就意味着容器不会有自己的网卡信息,而是使用宿主
机的。容器除了网络,其他都是隔离的。 - none
--net=none
获取独立的network namespace,但不为容器进行任何网络配置,需要我们手动配置。 - container
net=container:Name/ID
与指定的容器使用同一个network namespace,具有同样的网络配置信息,两个容器除了网络,其他都还是隔离的。 - 自定义网络 与默认的bridge原理一样,但自定义网络具备内部DNS发现,可以通过容器名或者主机名容器之间网络通信。
用busybox
来测试
docker pull busybox
docker images
//运行 busybox
docker run -itd --name bs01 --net=bridge busybox
docker run -itd --name bs02 --net=host busybox
//进入busybox容器中 用 sh
docker exec -it bs02 sh
-itd
中的d
参数,是给容器分配一个伪终端,保持在后台运行
移除测试的容器
docker rm -f <ID/Name>
//如
docker rm -f nginx01
- 查看端口监听情况(host模式下)
netstat -antp |grep 80
container模式实例
新建
bs
容器和nginx01
容器,两个容器共用相同的网络命名空间
docker run -itd --name bs -p 99:80 busybox
docker run -d --name nginx01 --net container:bs nginx
docker exec -it bs sh
netstat -antp
image.png
自定义网络实例
1、创建一个网络bs-test
docker network create bs-test
2、新建bs3
和bs4
,加入自定义网络 bs-test
,可以互相ping
通
docker run -it --name bs3 --net bs-test busybox
docker run -it --name bs4 --net bs-test busybox
ping bs3
centos路由和路由表命令
- 查看路由
route
- 查看路由表
iptables -vnL
//
iptables-save