Docker Swarm
Recipe and cheatsheet to start a Docker Swarm Cluster
Docker Swarm
Service Discovery is done via a local DNS Server which maps container names to IPs. Multiple private networks are created in the same Node
Creating a Warm and Running a Servicena te
A service will start a container The service will scale containers up and down *** Versions *** Docker version 17.12.0-ce, build c97c6d6
Service? Image Published ports (to host mapping) Commands, Environment Variables Memory/CPU Limits on Host Network Replicas
Service -> (n)Task(1) -> (1)Container Swarm manager will accept the service definition as the desired state for the application.
[ ATOMIC NODE ]
docker info
docker info | grep Swarm
Start Docker Swarm
docker swarm init
Docker Node
docker node -h
docker node ls
docker node inspect self
docker node inspect rxfsc9p06sefyf0rmve86bpw2
Add a Container to the Swarm (via service)
docker service --help
docker service create --name nginxservice --publish 8080:80 nginx
docker service ls
docker container ls
Scale
docker service scale nginxservice=1
Add another Service
docker service create --name customer-api --publish 3000:3000 swarmgs/customer
docker service ls
localhost:8080
docker service inspect nginxservice
docker service ps nginxservice #Processes running on this service
docker service rm nginxservice
Update service replicas
docker service update --replicas=2 nginxservice
docker service scale nginxservice=6
Benchmark Service
Send 1000 requests to endpoint
ab -n 1000 -c 4 localhost:3000/customer/1
Requests per second: 87.12 [#/sec] (mean)
ab -n 1000 -c 4 coderecipes.org
Terminate Swarm
docker swarm leave --force
Nodes
Docker Machine
docker-machine create --driver amazonec2 --amazonec2-region us-east-1 \ --amazonec2-zone a \ --amazonec2-ami ami-d15a75c7 \ --amazonec2-vpc-id vpc-32242156 \ --amazonec2-access-key xx \ --amazonec2-secret-key uu+OamV/1/Js4St0g \ aws-swarm-manager
docker-machine ls
docker-machine rm aws-swarm-manager -f
docker-machine ssh aws-swarm-manager
docker-machine create --driver amazonec2 --amazonec2-region us-east-1
--amazonec2-zone a
--amazonec2-ami ami-d15a75c7
--amazonec2-vpc-id vpc-32242156
--amazonec2-access-key xx
--amazonec2-secret-key yy
aws-swarm-worker1
export DOCKER_HOST=204.236.254.106
*** join the swarm ***
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-xx-9e5exfymmi8xd5djv9u838fac 199.31.30.101:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
Created on 6/15/2018