docker网络概况
四种单节点网络模式
1. bridge模式
docker容器默认使用bridge模式的网络
docker image ls
docker container run -itd --name peng_bridge --network bridge centos bash //启动一个容器宿主机会增加一个veth
docker container exec -it peng_bridge bash //容器会增加一个eth0
- 使用 veth 对,一头在容器的网络 namespace 中,一头在 docker0 上
- 该模式下Docker Container不具有一个公有IP,因为宿主机的IP地址与veth pair的 IP地址不在同一个网段内
- Docker采用 NAT 方式,将容器内部的服务监听的端口与宿主机的某一个端口port 进行“绑定”,使得宿主机以外的世界可以主动将网络报文发送至容器内部
- 外界访问容器内的服务时,需要访问宿主机的 IP 以及宿主机的端口 port
- 容器拥有独立、隔离的网络栈;让容器和宿主机以外的世界通过NAT建立通信
- iptables 的 SNTA 规则,使得从容器离开去外界的网络包的源 IP 地址被转换为 Docker 主机的IP