【WIP】docker swarm mode

以下のページを参考にswarm mode について検証しました。
http://docs.docker.jp/engine/swarm/index.html
https://pocketstudio.net/2016/06/23/docker-1-12-swarm-mode-and-ingress-load-balancing/

環境情報
環境情報はこんな感じです

  • manager 192.168.56.102
  • node 192.168.56.103

docker version(両方とも)

root@docker-01:~# docker version
Client:
 Version:      1.12.3
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   6b644ec
 Built:        Wed Oct 26 22:01:48 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.3
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   6b644ec
 Built:        Wed Oct 26 22:01:48 2016
 OS/Arch:      linux/amd64

Swarm環境の作成
■ Swarm Manager 設定

root@docker-01:~# docker swarm init --advertise-addr 192.168.56.102:2375
Swarm initialized: current node (crvaf9qvq9z9o437dw1whvsk5) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join \
    --token SWMTKN-1-3pm92d2p8ptzjljwzlxc4usp03y5q88t15vfku67wypbz4nrmf-4733tf33pxk3pczt225irpooc \
    192.168.56.102:2375

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

■ Swarm Node 設定

root@docker-02:~# docker swarm join \
>     --token SWMTKN-1-3pm92d2p8ptzjljwzlxc4usp03y5q88t15vfku67wypbz4nrmf-4733tf33pxk3pczt225irpooc \
>     192.168.56.102:2377
This node joined a swarm as a worker.

ここで注意したいのが port番号。
2375 のDockerAPIのポート番号をしているとノードがきちんと追加されず、かなり長い間迷ってしまいました。
以下のURLを参考に 2377 でjoinすると成功します。
要注意です。
http://stackoverflow.com/questions/38693560/docker1-12-worker-not-able-to-join-in-clusterswarm-pending

■ Swarm Nodeの確認

root@docker-01:~# docker node ls
ID                           HOSTNAME   STATUS  AVAILABILITY  MANAGER STATUS
3xxrxcf2wj6k4sqvbkcq6dcvu    docker-02  Ready   Active        
crvaf9qvq9z9o437dw1whvsk5 *  docker-01  Ready   Active        Leader

Swarm環境の止め方

ノードをひとつづつ止めていけばSwarm環境はなくなります。


■ノードを外したい場合
以下のコマンドでNodeを止めることができます。

ノードの場合
止めたノードは docker node rm で外すことができます。

root@docker-02:~# docker swarm leave

■Managerノードの止め方
Managerノードの場合、以下コマンドを打つことで
Swarm Modeを止めることができるようです。

root@docker-01:~# docker swarm leave --force