Docker Swarm

MD
R
Markdown

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