Problem

開発メモ その48 Red Hat Enterprise Linux 7.2にDockerをインストールするにて、Dockerをインストールしました。
けど、自分はCLIは苦手だし、コマンド覚えるのが嫌です。
GUI万歳!!!

というわけで管理ツールを導入します。
Dockerの管理ツールはいくつかありますが、Webで管理できるのは下記の2点

  • DockerUI
  • shipyard

があります。
今回は多機能なshipyardを導入します。

注意

下記のページにて、**/var/run/docker.sock** をマウントすることの危険性を説いています。

特にshipyardについても言及しています。
対応策が語られていないのですが、そういうものだと割り切ります。
このあたり、本番環境に導入するというのは自己責任ですね。

Solution

インストール方法自体は、非常にシンプルです。

1
$ curl -s https://shipyard-project.com/deploy | bash -s

ですが、上の方法だと、下記のメッセージが表示されてしまい、実行できませんでした。

1
2
3
4
5
/usr/bin/docker-current: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.
See '/usr/bin/docker-current run --help'.
Deploying Shipyard
-> Starting Database
/usr/bin/docker-current: Cannot connect to the Docker daemon. Is the docker daemon running on this host?

dockerのサービスデーモンが実行されていないのでは?というメッセージですが、sudo service docker status を実行すると正しく動作していることは示しています。
ですが、docker ps だと、同じようにCannot connect to the Docker daemon. Is the docker daemon running on this host? と表示されます。
そこでふと思ったのが、sudo したらどうなる?と思って実行したら、sudo dcker ps が成功しました。
なので、先述のインストールコマンドも

1
$ curl -s https://shipyard-project.com/deploy | sudo bash -s

することで動作しました。
気づくのに時間がかかりました。

ここで注意するのは、上のコマンド、先述の /var/run/docker.sock をマウントするコマンドが実行される点です。
これだけは認識しておいてください。

さて、上のコマンドでDockerにコンテナが追加されました。
shipyard自体がコンテナで実行されるアプリケーションです。
それなのに、自分以外のコンテナの状態を管理するツールになり得るのは、/var/run/docker.sockをマウントして色々やっているからとのことです

インストールが完了すると、

1
2
3
4
Waiting for Shipyard on 端末のIP:8080

Shipyard available at http://<端末のIP>:8080
Username: admin Password: shipyard

と表示されます。
パスワードはデフォルトは危険なのですぐに変えましょう。

外部のブラウザから、http://<端末のIP>:8080でアクセスすると、下記の美しいログイン画面が表示されます。


ログイン後の画面。

以上です。