Products
GG网络技术分享 2026-01-20 18:35 1
说实话, Docker的网络功Neng有时候像一杯加了辣椒粉的奶茶,甜里带辣、辣里带苦。想要在容器之间隔离网络 检查路由表甚至自定义网络驱动?别指望一步到位, 先准备好咖啡因和耐心我们一起在坑里翻滚。
来一波... 在宿主机上,你得先创建一对veth设备。它们总是成双出现,一头进,一头出,仿佛是两只互相倾诉的耳朵。命令大致如下:

ip link add veth0 type veth peer name veth1 ip link set veth0 up ip link set veth1 up
也是醉了... 这一步完成后 你会kan到两个接口在 ip a 列表里摇摇晃晃,恭喜你,Yi经成功把“数据通道”打开了!不过别高兴太早,主要原因是接下来还有geng“刺激”的桥接和iptables。
docker0 这个默认网桥, 就像老旧的公交站牌,总是被人忽视, 我满足了。 却又不经意间支撑起整个城市的流动。我们可yi手动给它指定子网:
docker network create \ --driver bridge \ --subnet 172.25.0.0/16 \ my‑bridge‑net
创建完以后用 docker run --net=my‑bridge‑net -d nginx 把容器塞进去。此时容器会得到一个 172.25.x.x 的IP,和宿主机上的其他容器形成“一屋檐下”的亲密关系,牛逼。。
标签 + 策略 = 隔离?真的可yi!
-l env=prod -l tier=frontend
docker network connect --alias web1 my‑bridge‑net my‑app
docker network disconnect my‑bridge‑net or‑app
只要把不同业务线的容器贴上不同的标签 再配合 的规则,就Neng让它们互相“kan不见”。虽然听起来像是黑客帝国里的防火墙代码片段-m comment,与君共勉。
# 查kan宿主机路由表 ip route show # 查kan容器内部路由表 docker exec -it $ ip route
小技巧: 如guo你发现容器内没有默认网关,那就说明它仍然在“孤岛”。 不靠谱。 这时候可yi手动添加:
docker exec $ ip route add default via 172.25.0.1
Docker 官方提供了几个内置驱动:bridge、host、none、overlay。但如guo这些dou满足不了你的“奇思妙想”, 反思一下。 那就自己写一个插件吧!下面是一段极其简陋的 Go 示例:
// simple-plugin.go
package main
import (
"github.com/docker/go-plugins-helpers/network"
)
func main {
// 实现Zui基本的 Activate 接口
driver := &MyDriver{}
h := network.NewHandler
h.ServeUnix
}
type MyDriver struct{}
func GetCapabilities {
return &network.CapabilityResponse{Scope:"local"}, nil
}
...
// 编译后放到 /var/lib/docker/plugins/mydriver.sock 即可
⚠️注意⚠️: 1️⃣ 插件必须放在 Docker Neng够识别的位置 2️⃣ 必须确保 /var/r 换句话说... un/docker.sock 权限正确 3️⃣ 调试时Zui好准备好 dmesg | tail -n 20
| Docker 网络插件功Neng速查表 | |||
|---|---|---|---|
| 插件名称 | 支持模式 | 性Neng指标 | 社区活跃度 |
| Cilium | L3/L4/L7 | 120k | 🔥🔥🔥🔥🔥 |
| CaliCo | L2/L3 | 80k | 👍👍👍👍 |
| Kube‑router | L2/L4 | 60k | 🙂🙂🙂 |
| Docker‑nat | L4 NAT | 30k | 🦖🦖🦖 |
| 小结:若想追求极致性Neng, 请考虑 Cilium;若只想玩玩不出错,用 Docker 自带 NAT 就行。 | |||
回顾整篇文章,你可Neng会发现它没有丝毫结构美感,没有明确的逻辑顺序,却恰恰体现了实战中那种乱中取胜的精神,说真的...。
#Docker网络高级实战 #随手写个烂文 #技术+情绪混搭 🍜🍜🍜 ️💥💥💥 ︎︎︎︎︎︎︎︎︎✈️✈️✈️🚀🚀🚀🎉🎉🎉 🌟🌟🌟 结束啦~ 🎈 🎈 🎈 🙌🙌🙌
Demand feedback