- Create machines / nodes
node-01
node-02
node-03
- Update machine
apt-get update
apt-get upgrade -y
- Enable ports
ufw allow 22/tcp
ufw allow 2376/tcp
ufw allow 2377/tcp
ufw allow 7946/tcp
ufw allow 7946/udp
ufw allow 4789/udp
ufw reload
ufw enable
systemctl restart docker
- Check ports
lsof -i -P -n | grep LISTEN
netstat -tulpn | grep docker
- Init Swarm
docker swarm init --advertise-addr
docker swarm join-token manager
docker swarm join-token worker
- Create visualizer (optional)
docker service create \
--name=viz \
--publish=8080:8080/tcp \
--constraint=node.role==manager \
--mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
dockersamples/visualizer
docker service ls
- Download repo (bad practice)
git clone repo
- Build and Deploy
docker-compose -f docker-compose.prod.yml build
docker stack deploy -c docker-compose.prod.yml prod-dashboard
docker service ls
- Scale service
docker service scale prod-dashboard_api=2