Load balanced stack using docker swarm, but before we start create the swarm with the boot2docker images
docker-machine create -d hyperv --hyperv-virtual-switch "dockerswarm" --hyperv-boot2docker-url https://github.com/boot2docker/boot2docker/releases/download/v18.06.1-ce/boot2docker.iso nodemanager
docker-machine create -d hyperv --hyperv-virtual-switch "dockerswarm" --hyperv-boot2docker-url https://github.com/boot2docker/boot2docker/releases/download/v18.06.1-ce/boot2docker.iso nodeworker
docker-machine create --driver virtualbox --virtualbox-boot2docker-url https://github.com/boot2docker/boot2docker/releases/download/v18.06.1-ce/boot2docker.iso nodemanager
docker-machine create --driver virtualbox --virtualbox-boot2docker-url https://github.com/boot2docker/boot2docker/releases/download/v18.06.1-ce/boot2docker.iso nodeworker
docker-machine ssh nodemanager "docker swarm init --advertise-addr $(docker-machine ip nodemanager)"
docker-machine ssh nodeworker "docker swarm join --token {TOKEN} $(docker-machine ip nodemanager):2377"
# Windows
docker-machine env nodemanager | Invoke-Expression
# Nix
eval $(docker-machine env nodemanager)
docker network create --driver overlay --subnet=172.10.1.0/24 tut10-frontend
docker network create --driver overlay --subnet=172.10.2.0/23 tut10-backend
docker stack deploy -c php-mysqli-apache.yml php-mysqli-apache
docker stack ls
docker stack ps php-mysqli-apache
docker stack services php-mysqli-apache
docker ps
# or
docker-machine ssh nodemanager "docker ps"
docker-machine ssh nodeworker "docker ps"
# local node master
curl http://localhost:8080
# vm node master
curl http://$(docker-machine ip nodemanager):8080
docker stack rm php-mysqli-apache