- swarm = cluster of docker nodes/hosts working together
- consider which node/host will be manager node
- `sudo docker swarm init` ![[images/Pasted image 20250711204003.png]]
- swam manager creates a default overlay network
- copy+paste above highlighted text on different docker host to join swarm as a worker![[images/Pasted image 20250711204158.png]]
- `sudo docker node ls` on manager node to list nodes in swarm![[images/Pasted image 20250711204328.png]]
- `sudo docker service create --name caddy -p 80:80 caddy` to create a service name caddy running in swarm based on caddy image
- `sudo docker network ls` on manager node to list networks ![[images/Pasted image 20250711204521.png]]
- swarm runs on overlay network
- bridge networks allow hosts to talk to 'real' underlying network
- interesting thing about overlay network: all nodes listen on published initialized ports on swarm even if not local
- enables `curl 127.0.0.1:80` from any node in swarm to run caddy html
- `sudo docker network inspect ingress | more` to see details of ingress network and its scope