Docker Multi-Host Networking (4)

Dockerにおいて表題の通り。前回までの続きであるstep2のswarmクラスタ構築を行う。

■ 環境

  • Mac OSX (10.10.5)
  • Apache ZooKeeper 3.4.6
  • Vagrant 1.8.1
  • Ubuntu Vivid

■ Create a Swarm cluster

まずは”swarm“のコンテナイメージをそれぞれ`pull`する。

$ vagrant ssh docker1
vagrant@docker1:~$ docker pull swarm
 :
$ vagrant ssh docker2
vagrant@docker2:~$ docker pull swarm

ZooKeeperを使用したswarmクラスタの構築については下記を参照した。

Docker Swarm discovery
https://docs.docker.com/swarm/discovery/

それぞれのDockerホスト上で”swarm-agent“というコンテナ名で`swarm join`させる。

docker1:

vagrant@docker1:~$ docker run -d --name swarm-agent swarm join --advertise=192.168.33.11:2375  zk://10.0.2.2:2181/

docker2:

vagrant@docker2:~$ docker run -d --name swarm-agent swarm join --advertise=192.168.33.12:2375  zk://10.0.2.2:2181/

ここまででznodeを確認してみると下記のようになっていた。

/
  + docker
    + nodes
      + 192.168.33.11:2375
      + 192.168.33.12:2375
    + swarm
      + nodes
        + 192.168.33.11:2375
        + 192.168.33.12:2375

続いて、”docker1“にて”swarm-manager“を起動する。

vagrant@docker1:~$ docker run -d --name swarm-manager -p 2376:2375 swarm manage zk://10.0.2.2:2181/

ここで再度znodeを確認したが変わりはなかった。

■ check

swarmクラスタが正常に稼働しているかを確認する。

vagrant@docker1:~$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
ee0f2ea65a33        swarm               "/swarm manage zk://1"   2 minutes ago       Up 2 minutes        0.0.0.0:2376->2375/tcp   swarm-manager
2aa9e4f8f877        swarm               "/swarm join --advert"   9 minutes ago       Up 9 minutes        2375/tcp                 swarm-agent
vagrant@docker1:~$
vagrant@docker1:~$ docker -H tcp://localhost:2376 info
Containers: 3
Images: 2
Role: primary
Strategy: spread
Filters: health, port, dependency, affinity, constraint
Nodes: 2
 docker1: 192.168.33.11:2375
  └ Status: Healthy
  └ Containers: 2
  └ Reserved CPUs: 0 / 1
  └ Reserved Memory: 0 B / 2.052 GiB
  └ Labels: executiondriver=native-0.2, kernelversion=3.19.0-42-generic, operatingsystem=Ubuntu 15.04, storagedriver=devicemapper
 docker2: 192.168.33.12:2375
  └ Status: Healthy
  └ Containers: 1
  └ Reserved CPUs: 0 / 1
  └ Reserved Memory: 0 B / 2.052 GiB
  └ Labels: executiondriver=native-0.2, kernelversion=3.19.0-43-generic, operatingsystem=Ubuntu 15.04, storagedriver=devicemapper
CPUs: 2
Total Memory: 4.104 GiB
Name: ee0f2ea65a33
vagrant@docker1:~$

これでswarmクラスタの構築が終了である。

以上。

■ 関連