重点关注跨主机容器间的通信问题
docker版本:20.10.17
1、同主机下容器之间如何通信?
Linux网桥
2、不同主机下容器间如何通信?
VXLAN虚拟扩展局域网
consul-node1:
vi daemon.json
加入启动参数:
cluster-store=consul://<consul_node>:8500
cluser-advertise=eth0:2367
systemctl-daemon && systemctl restart docker
安装consul数据库
docker run -d -p 8500:8500 -h consul progrium/consul -server -bootstrap
创建跨主机通信网络,指定网络驱动overlay
docker network create -d overlay multi
docker-node1:
docker run -it --rm --name=c1 --net=multi busybox
docker-node2:
docker run -it --rm --name=c2 --net=multi busybox
#ping c1
正常联通
3、容器如何与宿主机通信?
netfilter/iptables/route路由表
4、容器如何访问外部网络?
端口映射,iptables nat做地址源地址转换
5、外部网络如何访问容器?
端口映射,iptables nat做目的地址转换