複数のDockerホストをローカルで稼働

表題の通り。docker-machineを用いて複数のDockerホストの管理を少しかじってみる。

■ 環境

  • docker-machine 0.3.1
  • Mac OSX (10.10.5)

■ 1台のDockerホスト

先日のエントリで稼働させたDockerホストをそのまま利用する。現時点では下記の通り。

$ docker-machine ls
NAME ACTIVE DRIVER      STATE    URL                       SWARM
test        virtualbox  Running  tcp://192.168.99.100:2376
$

起動させただけでは上記のままである。docker-machineでVMを起動時に表示されたコマンドの通り環境変数に入れると表記が少し変わるようだ。実行しているシェルで、どのDockerホストにアクセスしているのかが把握できる。

$ eval $(docker-machine env test)
$
$ docker-machine ls
NAME ACTIVE DRIVER      STATE    URL                       SWARM
test *      virtualbox  Running  tcp://192.168.99.100:2376
$

■ 2台のDockerホスト

2台目を追加で起動する。

$ docker-machine create --driver virtualbox test2
Creating VirtualBox VM...
Creating SSH key...
Starting VirtualBox VM...
Starting VM...
To see how to connect Docker to this machine, run: docker-machine env test2
$

この状態で一覧を見てみる。

$ docker-machine ls
NAME  ACTIVE DRIVER      STATE    URL                       SWARM
test2        virtualbox  Running  tcp://192.168.99.101:2376
test  *      virtualbox  Running  tcp://192.168.99.100:2376
$

Dockerホストの管理が容易そうである。シェル毎に環境変数に入れる必要があるが、どこにアクセスしているのかも確認がしやすいだろう。boot2dockerの時は`~/.bash_profile`等に直書きしていたが、自身で起動・設定したDockerホストの時は環境変数から`unset`しなければならなかったりしたので、こちらの方が良いのかもしれない。

さらにSwarmで複数のDockerホストをひとつのDockerクラスタで扱う…というようなイメージになるのであろうか。順次見ていくことにする。

以上。

■ 関連