2018/10/09 平見知久
Dockerコンテナをwebで管理する
弊社では開発環境の一部でDockerを使用しています。いつくしまを開発するようになってからはパッケージ数が増えてきており、パッケージ数 x バージョン で環境が膨れ上がるためにいちいち仮想マシンでやってられないというのが理由の一つです。
ですが、Dockerコンテナがだんだん増えて来ると今度はコンテナやイメージが多すぎて訳がわからなくなるということになりがちです。
ということで、コンテナを管理するGUIのご紹介です。
今だと各種でていますが、私はPortanierを使用しています。
https://hub.docker.com/r/portainer/portainer/
導入も簡単ですし、必要十分な機能が揃っています。 強いて言うなら複数台のホスト管理等には対応していないので小規模向けでしょうか。
まあ、大規模や本番運用であればKubernetes等に行くのでしょうが、小規模でお手軽に利用するという点ではやや重厚すぎる気がするのでお手軽に動かせます。
docker系の多くのプロダクト同様、dockerイメージとして公開されていますので導入は非常に簡単です。
強いて挙げるとすればdockerイメージ側からホストの/var/run/docker.sockにアクセスできるようにする必要がある点でしょうか?
$ docker volume create portainer_data
$ docker run -d -p 9000:9000 –name portainer –restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
イメージを起動してしまえば、 http://<ホストのIP>:9000/で管理画面にアクセスできます。
ダッシュボードはこんな感じです。コンテナやイメージがざっくり概観できます。ホストとしてのstatsはないですが、個別インスタンスのstats(プロセス・CPU使用率等)はインスタンスのページで確認できます。
コンテナの一覧はこんな感じで、当然起動・停止もできますし、renameなどもできます。まとめて停止や削除が地味にうれしかったりします。
webコンソール機能も持っていますので、ブラウザから直接コマンドも叩けます。まあ、ホスト経由でログインしちゃうことが多いですが。
あとスクリーンショットは上げませんがイメージの一覧・管理・削除などもwebからできます。機能的には十分ですね。
利用用途としてはインスタンスの整理(OTRSのバージョンが上がってインスタンスを入れ替えるとき等)がメインで、半分以上はコマンドラインで上げたりしていますので、あくまで補助的な使い方になります。
dockerに限らず運用管理もののアプリの全体的な傾向として、機能がどんどん増えていって仕掛けも大掛かりになって..といったケースが多いですが、「個人的には」こういう小回りの効く軽いアプリは好みだったりします。多機能なのも悪くないのですが、まあ使い分けというところでしょうか。