前回 Docker Swarm を試してみる - moremagicの日記 の記事で、DockerSwarmを試した時は DockerHub 側に node情報を保管する?方式のようでした。
そのため今回は Consul を使用して同じことやってみました。


環境情報はDocker Swarm を試してみる - moremagicの日記の時と全く同じです。

consul local で起動します。

docker run –name consul -d
-p "8500:8500"
-h "consul"
–restart=always
progrium/consul -server -bootstrap

swarm manager を Consul を使用して起動します

docker -H tcp://192.168.1.6:2375 run -d -p 12375:2375 swarm manage –replication –advertise 192.168.1.6:12375 consul://192.168.1.6:8500/nodes

swarm ノード起動

docker -H tcp://192.168.1.6:2375 run -d swarm join –advertise=192.168.1.6:2375 consul://192.168.1.6:8500/nodes docker -H tcp://192.168.1.7:2375 run -d swarm join –advertise=192.168.1.7:2375 consul://192.168.1.6:8500/nodes

確認

root@ubuntu:~# docker -H tcp://192.168.1.6:12375 info Containers: 1 Images: 1 Server Version: swarm/1.1.3 Role: primary Strategy: spread Filters: health, port, dependency, affinity, constraint Nodes: 2 ubuntu: 192.168.1.7:2375 └ Status: Healthy └ Containers: 1 └ Reserved CPUs: 0 / 2 └ Reserved Memory: 0 B / 1.018 GiB └ Labels: executiondriver=native-0.2, kernelversion=3.19.0-33-generic, operatingsystem=Ubuntu 15.04, storagedriver=devicemapper └ Error: (none) └ UpdatedAt: 2016-03-10T05:40:06Z ubuntu: 192.168.1.6:2375 └ Status: Pending └ Containers: 3 └ Reserved CPUs: 0 / 2 └ Reserved Memory: 0 B / 1.018 GiB └ Labels: executiondriver=native-0.2, kernelversion=3.19.0-33-generic, operatingsystem=Ubuntu 15.04, storagedriver=devicemapper └ Error: ID duplicated. DZ3Q:GYC5:JU6F:KELO:HXKC:2WNX:L2DJ:CZIM:YQX5:CVXP:FAZN:PXFQ shared by this node 192.168.1.6:2375 and another node 192.168.1.7:2375 └ UpdatedAt: 2016-03-10T05:39:58Z Kernel Version: 3.19.0-33-generic Operating System: linux CPUs: 2 Total Memory: 1.018 GiB Name: 808ea99c39d6 root@ubuntu:~#

きちんと2台 起動し、認識しました。
結構大変だった・・・

Consul のWebGUIを見ても特にNode情報は見えませんでした。
これ、ほんとにNode情報保管されてるのかな・・・?


資料
http://docs.docker.jp/swarm/discovery.html
https://docs.docker.com/swarm/install-manual/
http://blog.takanabe.tokyo/2015/12/21/1665/
http://qiita.com/zembutsu/items/d1ab2a23e0bf1507975d

追記;
swarm manager 起動時は、Docker NAT内 IPを指定しないとダメなようです。
また、Node情報はKeyに保管されるようです
以下コマンドで確認可能。