swarmコマンド

Dockerのドキュメントを読んでいて、`swarm`のコマンドがあるの?と思ったのでメモ。

■ 環境

  • Docker 1.9.0
  • Docker Swarm 0.4.0
  • Mac OSX (10.10.5)
  • Homebrew

■ きっかけ

Docker1.9.2がリリースされてドキュメントを読んでいたところ、下記のような記述があった。

$ swarm create
$ swarm join ...

あれ?下記のようにコンテナの実行でやるんじゃないの?と思った。

$ docker pull swarm
$ docker run --rm swarm create
$ docker run --rm swarm join token://...

1.9.0“から`swarm`コマンドも導入されたのか?と思ったのだが、Homebrewでインストールしているdockerにはインストールはされていない様子。

$ brew ls docker
/usr/local/Cellar/docker/1.9.0/bin/docker
/usr/local/Cellar/docker/1.9.0/etc/bash_completion.d/docker
/usr/local/Cellar/docker/1.9.0/share/fish/vendor_completions.d/docker.fish
/usr/local/Cellar/docker/1.9.0/share/zsh/site-functions/_docker
$

■ docker−swarm

`swarm`コマンドはなかったので検索してみる。

$ brew update
$ brew search swarm

ここで`docker-swarm`が存在することを知った。以前は無かったような気もするのだが。ちょっと確認。

$ cd /usr/local/Library/Formula
$ git log docker-swarm.rb

これによると2015/05/19には既にあったようである。とりあえずインストールして確認してみる。

$ brew install docker-swarm

インストールが完了。

$ docker-swarm --help
Usage: docker-swarm [OPTIONS] COMMAND [arg...]

A Docker-native clustering system

Version: 0.4.0 (HEAD)

Options:
  --debug            debug mode [$DEBUG]
  --log-level, -l "info"    Log level (options: debug, info, warn, error, fatal, panic)
  --help, -h            show help
  --version, -v            print the version

Commands:
  create, c    Create a cluster
  list, l    List nodes in a cluster
  manage, m    Manage a docker cluster
  join, j    join a docker cluster
  help, h    Shows a list of commands or help for one command

Run 'docker-swarm COMMAND --help' for more information on a command.
$

これを見る限り、前述の`swarm`コマンドと同等のように思える。試しに`create`を実行してみる。

$ docker-swarm create
98e6adfe3326c4712a9316d00c27f545
$

`docker`コマンドをwrapしているだけなのだろうか?と思ったが、DockerHostを指定していない状態でも`docker-swarm create`を実行して出力を得られたので、単純なwrapというわけではないようだ。`docker-machine`の”–swarm“オプションとまた違うようなのだろうか、それとも一緒に使用されることはないというイメージなのだろうか。ちょっと触ってみることにする。

以上。

■ 関連