Ubuntu 上用 Docker Overlay 实现跨主机容器网络共享
一、概念与适用场景
二、两种常见部署方式
方式一(推荐)使用 Docker Swarm 内置的 Overlay
docker swarm init,按提示在其它节点执行 docker swarm join --token <TOKEN> <MANAGER-IP>:2377 加入集群。docker network create -d overlay --attachable my-overlay(如需固定网段:--subnet 10.22.1.0/24 --gateway 10.22.1.1 my-overlay)。docker run -d --name c1 --network my-overlay ubuntu:24.04;跨主机间可直接用容器名或 IP 互通(Swarm 内置 DNS 解析容器名)。方式二 使用外部 KV 存储(Consul/Etcd/ZooKeeper)管理 Overlay
docker run -d -p 8500:8500 --name consul progrium/consul -server -bootstrap,访问 http://{"cluster-store":"consul://<KV-IP>:8500","cluster-advertise":"ens33:2376"}systemctl daemon-reload && systemctl restart dockerdocker network create -d overlay ov_net1,各节点将自动同步该 global 网络。三、快速验证与常见问题
ping <容器B的IP或容器名>;如需解析验证可用 nslookup/dig 检查服务名。docker network ls、docker network inspect <net> 查看详情。docker run 中使用 --ip 分配固定地址。四、与 OverlayFS 的区别