node 1: ip address is 192.168.56.101
node 2: ip address is 192.168.56.102
get the x86_64 bit version
$ wget https://experimental.docker.com/builds/Linux/x86_64/docker-latest
$ sudo ./docker-latest version
Client:
Version: 1.9.0-dev
API version: 1.21
Go version: go1.4.2
Git commit: 0e3674d
Built: Tue Aug 11 23:06:01 UTC 2015
OS/Arch: linux/amd64
Experimental: true
on each node get consul:
$ wget https://dl.bintray.com/mitchellh/consul/0.5.2_linux_amd64.zip
$ unzip 0.5.2_linux_amd64.zip
on node 1:
$ ./consul agent -server -bootstrap -data-dir /tmp/consul -bind=192.168.56.101 -client=0.0.0.0
on node 2:
$ ./consul agent -data-dir /tmp/consul -bind=192.168.56.102 -client=0.0.0.0
$ ./consul join 192.168.56.101
on node 1:
$ sudo ./docker-latest daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --default-network=overlay:multicast --kv-store=consul:localhost:8500 --label=com.docker.network.driver.overlay.bind_interface=eth1
on node 2:
$ sudo ./docker-latest daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --default-network=overlay:multicast --kv-store=consul:localhost:8500 --label=com.docker.network.driver.overlay.bind_interface=eth1 --label=com.docker.network.driver.overlay.neighbor_ip=192.168.56.101
on any node:
$ sudo ./docker-latest network create -d overlay test
on any node start a service:
$sudo ./docker-latest run --publish-service redis1.test -d redis
node 1:
$ sudo ./docker-latest run swarm join --addr=192.168.56.101:2375 consul://192.168.56.101:8500/swarm
Note: the consul address should not use consul://localhost:8500/swarm and must use consul://192.168.56.101:8500/swarm
node 2:
$ sudo ./docker-latest run swarm join --addr=192.168.56.102:2375 consul://192.168.56.101:8500/swarm
start the swarm manager on any node, for example start it on node1:
$sudo ./docker-latest run -p 2376:2375 swarm manage consul://192.168.56.101:8500/swarm
on any node
$ sudo ./docker-latest -H tcp://0.0.0.0:2376 run -d --name=redis1 -m 2G redis
$ sudo ./docker-latest -H tcp://0.0.0.0:2376 run -d --name=redis2 -m 2G redis