How to use Docker overlay networks?
· Category: Docker
Short answer
Docker overlay networks use VXLAN tunneling to connect containers across multiple hosts. They are primarily used in Docker Swarm to enable service discovery and load balancing across a cluster.
Steps
- Initialize Docker Swarm:
docker swarm init. - Create an overlay network:
docker network create -d overlay myoverlay. - Attach services to the overlay network in a Swarm stack.
- Deploy the stack with
docker stack deploy.
Example
docker swarm init
docker network create -d overlay --attachable myoverlay
docker service create --name web --network myoverlay -p 80:80 nginx
Compose file for Swarm:
version: "3.9"
services:
web:
image: nginx
networks:
- myoverlay
networks:
myoverlay:
driver: overlay
Tips
- Use
--attachableto allow standalone containers to join the overlay network. - Ensure firewalls allow VXLAN traffic on UDP port 4789.
- Encrypted overlays can be created with
--opt encryptedfor sensitive data.
Common issues
- Overlay networks require a key-value store or Swarm mode on older Docker versions.
- MTU mismatches can cause packet fragmentation issues.
- Firewalls between nodes must permit traffic on Swarm ports 7946 and 4789.