您的位置:首页 > 运维架构 > Docker

学容器必须懂 bridge 网络 - 每天5分钟玩转 Docker 容器技术(32)

2017-06-23 06:35 756 查看
上一节我们讨论了 none 和 host 类型的容器网络,本节学习应用最广泛也是默认的 bridge 网络。

Docker 安装时会创建一个 命名为 
docker0
 的 linux bridge。如果不指定
--network
,创建的容器默认都会挂到 
docker0
 上。



当前 docker0 上没有任何其他网络设备,我们创建一个容器看看有什么变化。



一个新的网络接口 
veth28c57df
 被挂到了 
docker0
 上,
veth28c57df
就是新创建容器的虚拟网卡。

下面看一下容器的网络配置。



容器有一个网卡 
eth0@if34
。大家可能会问了,为什么不是
veth28c57df
 呢?

实际上 
eth0@if34
 和 
veth28c57df
 是一对
veth pair。veth pair 是一种成对出现的特殊网络设备,可以把它们想象成由一根虚拟网线连接起来的一对网卡,网卡的一头(
eth0@if34
)在容器中,另一头(
veth28c57df
)挂在网桥 
docker0
 上,其效果就是将 
eth0@if34
 也挂在了 
docker0
 上。

我们还看到 
eth0@if34
 已经配置了 IP 
172.17.0.2
,为什么是这个网段呢?让我们通过 
docker
network inspect bridge
 看一下 bridge 网络的配置信息:



原来 bridge 网络配置的 subnet 就是 172.17.0.0/16,并且网关是 172.17.0.1。这个网关在哪儿呢?大概你已经猜出来了,就是 docker0。



当前容器网络拓扑结构如图所示:



容器创建时,docker 会自动从 172.17.0.0/16 中分配一个 IP,这里 16 位的掩码保证有足够多的 IP 可以供容器使用。

除了 none, host, bridge 这三个自动创建的网络,用户也可以根据业务需要创建 user-defined 网络,下一节我们将详细讨论。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Docker 容器 教程
相关文章推荐