目录
1.原生网络
2.自定义网络
3.joined容器
4.端口映射
1.原生网络
docker network ls
默认使用桥接模式,桥接到docker0上
docker run -d --name demo nginx
yum install -y bridge-utils
brctl show
host模式,容器和宿主机共享同一网络栈,不会新建虚拟网卡
docker run -it --rm --network host busybox
none禁用网络,只用回环接口
docker run -it --rm --network none busybox
2.自定义网络
docker network create my_net1
自定义网络地址段
docker network create --subnet 10.0.0.0/24 --gateway 10.0.0.1 my_net2
自定义网络内嵌dns解析
docker run -d --name web1 --network my_net1 nginx
docker run -it --rm --network my_net1 busybox
不同网络之间是被隔离的,默认不能通信
docker run -it --rm --network my_net2 busybox
不同网络之间的通信需要附加虚拟网卡
docker run -it --rm --network my_net2 --name demo busybox
docker network connect my_net1 demo
docker attach demo
3.joined容器
两个容器共享一个网络栈
docker run -it --rm --network container:web1 --name web2 busybox
4.端口映射
外部主机访问容器可以通过DNAT规则和docker-proxy,只要有一种正常就能通信
docker rm -f web1
docker run -d --name web1 -p 80:80 nginx
iptables -t nat -nL
重启容器后,DNAT规则和docker-proxy策略会自动恢复