【docker】Overlay网络
-
什么是 Overlay 网络?
Overlay 网络是一种 Docker 网络驱动,允许容器在不同主机间通信。
它依赖分布式存储(如 Swarm、Etcd 或 Consul)来管理网络配置和路由。 -
Overlay 网络的核心特点
- 跨主机通信:容器可以跨物理主机直接通信。
- 动态路由:容器的 IP 地址和路由信息由 Docker 自动管理。
- 支持加密:可以启用网络加密以增强安全性。
- Overlay 网络实际应用场景
场景 1:分布式 Web 应用部署
某公司需要部署 Web 服务和数据库服务在多台主机上,实现负载均衡和高可用性。
操作步骤:
- 初始化 Swarm 集群:
docker swarm init
- 创建 Overlay 网络:
docker network create -d overlay web_network
- 部署服务:
docker service create --name web --network web_network -p 8080:80 nginx
docker service create --name db --network web_network mysql:5.7
场景 2:微服务架构中的服务隔离
一个微服务架构应用需要隔离部署多个模块(如用户服务、订单服务)。
操作步骤:
- 创建 Overlay 网络:
docker network create -d overlay user_network
docker network create -d overlay order_network
- 配置 Docker Compose 文件:
version: '3.8'
services:
user-service:
image: user-service:latest
networks:
- user_network
order-service:
image: order-service:latest
networks:
- order_network
networks:
user_network:
external: true
order_network:
external: true
- 部署服务:
docker-compose up -d
- 常用命令
- 初始化 Swarm 集群:
docker swarm init
- 创建 Overlay 网络:
docker network create -d overlay my_overlay
- 查看所有网络:
docker network ls
- 删除 Overlay 网络:
docker network rm my_overlay
- 创建并连接服务到 Overlay 网络:
docker service create --name my_service --network my_overlay nginx
- 查看 Swarm 服务状态:
docker service ls
- 删除 Swarm 服务:
docker service rm my_service
- 总结
Overlay 网络适合跨主机通信的分布式应用,结合 Swarm,可以实现高效的服务管理、负载均衡和安全的数据加密。