标签:独立 通过 docker0 work 转换 交互 image 说明 title
用一张图来说明 Docker 网络的基本概况:
Docker 容器默认使用 bridge 模式的网络。其特点如下: 使用一个 linux bridge,默认为 docker0 使用 veth 对,一头在容器的网络 namespace 中,一头在 docker0 上 该模式下Docker Container不具有一个公有IP,因为宿主机的IP地址与veth pair的 IP地址不在同一个网段内 Docker采用 NAT 方式,将容器内部的服务监听的端口与宿主机的某一个端口port 进行“绑定”,使得宿主机以外的世界可以主动将网络报文发送至容器内部 外界访问容器内的服务时,需要访问宿主机的 IP 以及宿主机的端口 port NAT 模式由于是在三层网络上的实现手段,故肯定会影响网络的传输效率。 容器拥有独立、隔离的网络栈;让容器和宿主机以外的世界通过NAT建立通信 关于容器通过 NAT 连接外网的原理,请参考我的另一篇文章 Netruon 理解(11):使用 NAT 将 Linux network namespace 连接外网。 iptables 的 SNTA 规则,使得从容器离开去外界的网络包的源 IP 地址被转换为 Docker 主机的IP地址:
定义:
Host 模式并没有为容器创建一个隔离的网络环境。而之所以称之为host模式,是因为该模式下的 Docker 容器会和 host 宿主机共享同一个网络 namespace,故 Docker Container可以和宿主机一样,使用宿主机的eth0,实现和外界的通信。换言之,Docker Container的 IP 地址即为宿主机 eth0 的 IP 地址。其特点包括:
实验:
(1)启动一个 host 网络模式的容器
标签:独立 通过 docker0 work 转换 交互 image 说明 title
原文地址:https://www.cnblogs.com/liujunjun/p/12090314.html