- 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