在 CentOS 上配置 overlay 网络,通常有两种常见场景:
下面我重点讲 Docker overlay 网络(最常见),如果你指的是别的场景,可以再说。
Overlay 网络依赖 Docker Swarm 或 外部 KV 存储(etcd/consul/zookeeper)。
docker swarm init
输出中会包含 worker 加入命令,例如:
docker swarm join --token xxx <manager-ip>:2377
docker swarm join --token xxx <manager-ip>:2377
docker network create \
--driver overlay \
--subnet 10.10.0.0/24 \
my-overlay
docker service create \
--name web \
--network my-overlay \
nginx
✅ 跨主机容器可直接通过 服务名 通信
docker run -d \
-p 8500:8500 \
--name consul \
consul
/etc/docker/daemon.json
{
"cluster-store": "consul://<consul-ip>:8500",
"cluster-advertise": "<node-ip>:2375"
}
重启 Docker:
systemctl restart docker
docker network create \
-d overlay \
my-overlay
Overlay 网络需要以下端口:
firewall-cmd --add-port=2377/tcp --permanent
firewall-cmd --add-port=7946/tcp --permanent
firewall-cmd --add-port=7946/udp --permanent
firewall-cmd --add-port=4789/udp --permanent
firewall-cmd --reload
docker network ls
docker network inspect my-overlay
如果是:
请告诉我:
✅ CentOS 版本
✅ 使用场景(Docker / K8s / 裸机网络)
我可以直接给你完整配置示例。