Docker Multi-Host Networking (3)

Dockerにおいて表題の通り。前回までの続きからstep2を行う。

■ 環境

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

■ Docker Host

Vagrantで起動している2つのVMにDockerをインストールする。”Ubuntu/Vivid“へのDockerインストール方法は下記に記載。

Install Docker Engine to Ubuntu/Vivid

上記インストールでは、該当ホスト以外からのアクセスが不可なので下記エントリのようにリモートアクセスを可能となるように設定を変更する。

DockerにRemoteからアクセス

上記エントリでは、CentOS6へのインストールなので、Ubuntuと違う点を下記に記載する。Ubuntuでは`initd`ではなく`systemd`なので、下記ファイルが修正対象のファイルとなる。

$ sudo vi /lib/systemd/system/docker.service

修正内容は下記。

ExecStart=/usr/bin/docker daemon -H fd:// -H tcp://0.0.0.0:2375

ExecStart“に”-H tcp://0.0.0.0:2375“を追加しただけである。Dockerのデーモンを再起動する。

$ sudo systemctl reload-daemon
$ sudo systemctl restart docker.service

※ Ubuntuで`upstart`を使用している場合には、対象のファイルは下記になるかと思われる。

/etc/default/docker

しかし、今回利用しているVagrantの”ubuntu/vivid64“では`upstart`がインストールされていないので`systemd`のファイルを編集している。

■ `docker daemon`オプション

Get started with multi-host networking
https://docs.docker.com/engine/userguide/networking/get-started-overlay/

公式ドキュメントの上記のページを見ると、”step2“の”1. Create Swarm master“にて`docker-machine`で起動しているDockerホストには下記オプションが渡されているようである。

  • –cluster-store=zk://10.0.2.2:2181/
  • –cluster-advertise=eth1:2375

これらを前述のリモートアクセスを可能にしたのと同じように下記ファイルを編集して追加する。接続先のKVSは以前のエントリで触れている通りZooKeeperを使用する。

–cluster-store“で指定するのはホストOSで起動しているZooKeeperである。”–cluster-advertise“で指定しているのは、Dockerにリモートでアクセスするルートと考え上記のようにしている。

これらを追記し再度Dockerサービスを再起動する。

$ sudo vi /lib/systemd/system/docker.service

変更後は下記のようになっている。

ExecStart=/usr/bin/docker daemon -H fd:// -H tcp://0.0.0.0:2375 --cluster-store=zk://10.0.2.2:2181/ --cluster-advertise=eth1:2375

再起動する。

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

ZooKeeperには下記のznodeが作成されていた。

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

ここまでで2台のDockerホストを起動した。

今回はここまで。swarmクラスタは次回構築することにする。

以上。

■ 関連

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください