- Delete previously create vm
default
- Create VM instances using docker-machine
master
node-01
node-02
Connect to docker on master
node and initialize swarm master with command
docker swarm init --advertise-addr <MASTER_IP>
Then follow the instructions to join nodes (node-01
and node-02
) to swarm cluster.
Create network called net-apps
with driver overlay.
eval $(docker-machine env master)
docker info
docker node ls
Node name | label |
---|---|
master | purpose=master |
node-01 | purpose=worker |
node-02 | purpose=worker |
Hint: Use docker node --help
Run single service on redis on worker node with label worker
docker service create --constraint node.labels.purpose==worker --name=redis --network=net-apps redis
Find out on which node is redis running and stop docker service on that node.
Verify that container started on new node.
- use docker constraints to run container based on newly defined label,
- use container affinity to create container on the same node with previously started container.
Use your compose file to deploy applications to nodes in swarm cluster. Don't forget to delete all previously created app containers.