Docker Weave网络部署
Weave在Docker主机之间实现Overlay网络,使用业界标准VXLAN封装,基于UDP传输,也可以加密传输。
Weave Net创建一个连接多个Docker主机的虚拟网络,类似于一个以太网交换机,所有的容器都连接到这上面,互相通信。
Weave Net由多个peer组成,Weave路由器运行不同Docker主机上,是一个用户空间的进程;每个peer都有一个名称,重启保持不变。它们通过TCP连接彼此,建立后交换拓扑信息。
Weave Net可以在具有编号拓扑的部分连接的网络中路由数据包。例如,在下面网络中,peer1直接连接2和3,但是如果1需要发送数据包到4和5,则必须先将其发送到peer3。
WeaveNet中的”fastdatapath”使用Linux内核的OpenvSwichdatapath模块。该模块使WeaveNet路由器能够告知内核如何处理数据包。OpenvSwichdatapath和VXLAN功能在Linux内核版本3.12+才支持,如果内核不支持,则WeaveNet使用”usermode”数据包路径。WeaveNet会自动选择两台主机之间最快的路径传输数据,提供近原生吞吐量和延迟。
部署
1 2 3 4 | 使用前提: 1. 确保Linux内核版本 3.8 + ,Docker1. 10 + 。 2. 节点之间如果有防火墙时,必须彼此放行TCP 6783 和UDP 6783 / 6784 端口,这是Weave控制和数据端口。 3. 主机名不能相同,通过主机名标识子网。 |
安装Weave(两个节点均执行)
1 2 3 4 | curl - L git.io / Weave - o / usr / local / bin / Weave chmod + x / usr / local / bin / Weave mv weave / usr / bin / chmod + x / usr / bin / weave |
以上安装方法不行使用以下方式安装
1 2 3 4 | cd / usr / local git clone https: / / github.com / weaveworks / weave cd / usr / local / weave / cp weave / usr / local / bin / |
启动并于其他主机连接
1 | weave launch |
会启动并下载镜像
连接
1 2 3 | weave launch 192.168 . 56.129 #另外一台主机输入 weave launch 192.168 . 56.128 |
查看路由进程
节点2连接节点1 连接完就会相互交换本地节点信息
查看状态
1 | weave status |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | Version: 2.0 . 4 (version 2.5 . 0 available - please upgrade!) Service: router Protocol: weave 1. . 2 Name: fe:c2:c3: 62 :e5: 79 (docker) Encryption: disabled PeerDiscovery: enabled Targets: 1 Connections: 1 ( 1 established) Peers: 2 (with 2 established connections) TrustedSubnets: none Service: ipam Status: idle Range : 10.32 . 0.0 / 12 DefaultSubnet: 10.32 . 0.0 / 12 Service: dns Domain: weave.local. Upstream: 127.0 . 0.53 TTL: 1 Entries: 0 Service: proxy Address: unix: / / / var / run / weave / weave.sock Service: plugin (legacy) DriverName: weave |
查看连接信息
1 | weave status connections |
测试互通(本次测试不通)
1 | docker run - it - - net = weave busybox |
查看weave分配的网络
1 | weave ps |
weave工作流程
其他功能
1 2 3 4 5 6 7 8 9 10 11 12 | IP地址管理(IPAM) Weave自动为容器分配唯一的IP地址。可通过weave ps查看 命名和发现 命名的容器自动会注册到Weave DNS中,并可以通过容器名称访问。 负载均衡 允许注册多个相同名称的容器,Weave DNS随机为每个请求返回地址,提供基本的负载均衡功能。 手动指定IP地址 docker run –it –e WEAVE_CIDR = 10.32 . 0.100 / 24 busybox 动态拓扑 可以在不停止或重新配置剩余Docker主机的情况下添加主机到Weave网络中或从Weave网络中删除 容错 weave peer不断交换拓扑信息,监视和建立与其他peer的网络连接。如果有主机或网络出现故障,Weave会绕过这个主机,保证两边容器可以继续通信,当恢复时,恢复完全连接。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!