docker 三种默认网络: none/host/bridge
host 是 --network=host 这种就是和主机在同一网络, 没有实现隔离, 主机的端口用过以后 容器无法使用 , 但是效率高
bridge 网络 是最广泛的: docker0: veth------- 虚拟网卡 , 网关是 docker0 的 ip
容器之间的连通性呢?
不通的 bridge 之间默认不通的, 要相通:
1.host 开启路由转发
2. 修改 iptables
容器在本机上可以互通了, 那么怎么访问外网?
: 默认可以访问外网
原因: 主机上有有 iptables NAT 规则:
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
容器可以出去了, 那么外边可以进来呢?
: 端口映射啊 docker run -p 8080:80 或 -p 80
每一个映射的端口, host 都会启动一个? docker-proxy? 进程来处理访问容器的流量: