教程 容器
上一节我们安装并创建了 Weave 网络,本节将部署容器并分析网络结构。
在 host1 中运行容器 bbox1:
eval $(weave env)
docker run --name bbox1 -itd busybox
首先执行
很重要,其作用是将后续的 docker 命令发给 weave proxy 处理。如果要恢复之前的环境,可执行
- eval $(weave env)
。
- eval $(weave env --restore)
查看一下当前容器 bbox1 的网络配置:
bbox1 有两个网络接口 eth0 和 ethwe,其中 eth0 连接的是默认 bridge 网络,即网桥 docker0。
现在我们重点分析 ethwe。从命名和分配的 IP 10.32.0.1/12 可以猜测 ethwe 与 weave 相关,
告诉我们与 ethwe 对应的是编号 77 的 interface。从 host1 的
- [email protected]
命令输出中找到该 interface:
- ip link
与
- vethwepl22809
是一对 veth pair,而且 vethwepl22809 挂在 host1 的 Linux bridge
- ethwe
上。
- weave
除了 vethwepl22809,weave 上还挂了一个
,这是什么?让我们更深入的分析一下,查看
- vethwe-bridge
输出:
- ip -d link
这里出现了多个新 interface:
①
与
- vethwe-bridge
是 veth pair。
- vethwe-datapath
②
的父设备(master)是
- vethwe-datapath
。
- datapath
③
是一个 openvswitch。
- datapath
④
是 vxlan interface,其 master 也是
- vxlan-6784
,weave 主机间是通过 VxLAN 通信的。
- datapath
host1 的网络结构如下图所示:
weave 网络包含两个虚拟交换机:Linux bridge
和 Open vSwitch
- weave
,veth pair
- datapath
和
- vethwe-bridge
将二者连接在一起。
- vethwe-datapath
和
- weave
分工不同,
- datapath
负责将容器接入 weave 网络,
- weave
负责在主机间 VxLAN 隧道中并收发数据。
- datapath
再运行一个容器 bbox2。
docker run --name bbox2 -itd busybox
weave DNS 为容器创建了默认域名
,bbox1 能够直接通过 hostname 与 bbox2 通信。
- weave.local
当前 host1 网络结构为:
host1 已准备就绪,下一节部署 host2 并讨论 Weave 的连通与隔离特性。
Weave 网络结构分析 - 每天5分钟玩转 Docker 容器技术(64)
来源: http://www.bubuko.com/infodetail-2294339.html