学容器必须懂 bridge 网络 - 每天5分钟玩转 Docker 容器技术(32)
上一节我们讨论了 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 核心技术之镜像
- 【简记】修改Docker数据目录位置,包含镜像位置
- 技术分享 | 掌握高频 Docker 命令,夯实内功基础
- 让我们稍微深入理解一下 docker 的技术概念
- 一文带你了解docker技术
- Docker技术入门与实战(第2版)1.4 本章小结
- Docker技术入门与实战(第2版)3.3 搜寻镜像
- Docker技术入门与实战(第2版)3.4 删除镜像
- Docker技术入门与实战(第2版)3.6 存出和载入镜像
- Docker技术入门与实战(第2版)3.7 上传镜像
- 《循序渐进学Docker》——2.3 本章小结
- Docker 前沿概述
- Docker生态概览
- 《Docker技术入门与实战》——第一部分 Docker入门
- 《Docker技术入门与实战》——1.3 虚拟化与Docker
- 《Docker技术入门与实战》——第2章 Docker的核心概念和安装
- 《Docker技术入门与实战》——3.4 删除镜像
- 《Docker技术入门与实战》——3.5 创建镜像
- docker基本操作
- 部署技术演变之虚拟机、容器、Docker、Kubernetes
- Docker与虚拟机技术
- Docker IPv4 forwarding is disabled. Networking will not work.