Skip to content

bmuschko/todo-docker-swarm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 

Repository files navigation

Setting up a Docker Swarm with Vagrant

Installation

Provisioning Swarm

$ vagrant up

Decomissioning Swarm

$ vagrant destroy -f

Creating Swarm nodes

Manager

Run the init command a copy the token for later use to create workers.

$ vagrant ssh swarm1
$ docker swarm init --advertise-addr 192.168.99.201
$ exit

Workers

Join the swarm as worker by running the join command and providing the token.

$ vagrant ssh swarm2
$ docker swarm join --token SWMTKN-1-4k9483jyh4xwhlba5o6xh9hle3rdl2qtpw388tu3wk9c38ya6r-b30wqt3q0jwcvswfk5939e6ph 192.168.99.201:2377
$ exit
$ vagrant ssh swarm3
$ docker swarm join --token SWMTKN-1-4k9483jyh4xwhlba5o6xh9hle3rdl2qtpw388tu3wk9c38ya6r-b30wqt3q0jwcvswfk5939e6ph 192.168.99.201:2377
$ exit

Creating a secret

$ vagrant ssh swarm1
$ printf "prodpwd" | docker secret create db-password -

Running the service stack

$ docker service create --name postgres --publish 5432:5432 --replicas 1 --secret db-password --env POSTGRES_USER=postgres --env POSTGRES_DB_PASSWORD_FILE=/run/secrets/db-password --env POSTGRES_DB=todo postgres:9.6.10-alpine
$ docker service create --name todo-web-service --publish 8080:8080 --replicas 1 --secret db-password --env SPRING_PROFILES_ACTIVE=prod bmuschko/todo-web-service:latest
$ docker service create --name todo-web-app --publish 80:8080 --replicas 1 --env SPRING_PROFILES_ACTIVE=prod bmuschko/todo-web-app:latest

Retrieving the private key of the leader node

$ vagrant ssh-config
$ more /Users/bmuschko/dev/projects/todo-docker-swarm/.vagrant/machines/swarm1/virtualbox/private_key

About

A Vagrant setup for Docker Swarm.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published