Swarm

Discovery

node discovery

docker run -d -p 2376:2375 swarm manage --discovery dockerhost01:2375,docker02:2375:docker03:2375 \
-H=0.0.0.0:2375

file discovery

docker run -d -p 2376:2375 -v /etc/swarm/cluster_config:/cluster \
swarm manage file:///cluster

# cat /etc/swarm/cluster_config
dockerhost01:2375
dockerhost02:2375
dockerhost03:2375

docker hub token

#docker run --rm swarm create
e9a6015cd02bfddb03ef95848b490450

docker run --rm swarm --addr=10.13.181.85:2375 token://e9a6015cd02bfddb03ef95848b490450

docker run -d -p 2376:2375 swarm manage token://e9a6015cd02bfddb03ef95848b490450

Schedule

spread

docker run -d -p 2376:2375 -v /etc/swarm/cluster_config:/cluster \
swarm manage --strategy=spread file:///cluster

binpack

docker run -d -p 2376:2375 -v /etc/swarm/cluster_config:/cluster \
swarm manage --strategy=binpack file:///cluster

random

docker run -d -p 2376:2375 -v /etc/swarm/cluster_config:/cluster \
swarm manage --strategy=random file:///cluster

Filter

TLS support

Create TLS Certificates for Docker and Docker Swarm

Docker:

docker -d \
--tlsverify \
--tlscacert=/etc/pki/tls/certs/ca.pem \
--tlscert=/etc/pki/tls/certs/dockerhost01-cert.pem \
--tlskey-/etc/pki/tls/private/dockerhost01-key.pem \
-H tcp://0.0.0.0:2376

Swarm master:

swarm manage \
--tlsverify \
--tlscacert=/etc/pki/tls/certs/ca.pem \
--tlscert=/etc/pki/tls/certs/swarm-cert.pem \
--tlskey=/etc/pki/tls/private/swarm-key.pem \
--discovery file://etc/swarm_config \
-H tcp://0.0.0.0:2376

Settings on client:

export DOCKER_HOST=tcp://dockerswarm01:2376
export DOCKER_CERT_PATH="`pwd`"
export DOCKER_TLS_VERIFY=1