コンテナを管理する方法は色々あると思うのですが、 自宅で技術検証をするときは portainer が便利そうでした。
公式サイトはこちらです。軽量な管理 UI で、簡単に Docker ホスト、Swarm クラスタを管理できると記載されています。
https://portainer.io/
よいと感じた点
- GUI で稼働中のコンテナやイメージ、ネットワーク、ストレージを見れます。マウス操作だけでいいので、モニタリングが手軽です。
- 画面もおしゃれだと思いました(人によって好みが違うとは思いますが・・)。
- コンソール接続もできます。
docker exec -ti コンテナ名 bash
をしなくても接続できるので手軽です。 - 著名なアプリのコンテナテンプレートが用意されていて、GUI 上でポチポチしているだけでコンテナを作れます。今まで触ったことのない技術に触りたくなりました。
導入方法
コンテナイメージ「portainer/portainer」をプルして起動します。
脱線しますが、個人的には OS は ubuntu を使うのが楽です。最近のソフトも結構パッケージ化されています。(仕事で Red Hat Enterprise Linux に機械学習の Caffe をインストールしたときは大変すぎました。。)
また、素の Docker を使うよりは Docker Compose を使うのがオススメです。コンテナの起動方法を yaml で書けるので、docker コマンドのオプションを覚える必要がなく、毎回長いオプションを打つ必要もなくなります。
docker compose は次のようにインストールします(Debian 系の場合)。
$ sudo apt install docker-compose
$ sudo usermod -aG docker ユーザ名
docker-compose.yaml は次の内容にします。
$ cat docker-compose.yaml
version: '2'
services:
portainer:
image: portainer/portainer
ports:
- 9000:9000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
では、コンテナを起動します。
$ docker-compose up
管理画面
http://localhost:9000 にアクセスするとログイン画面になります。初回はパスワードを設定します。
Local を選択します。
ダッシュボード
コンテナ一覧
コンテナ詳細
コンテナに対して起動、停止、削除のアクションを発行できます。また、リソース使用状況やログの表示もできます。
コンソール接続
[Containers] → [コンテナ名] → [Console] と遷移し、Connect をクリックするとコンソール接続できます。ブラウザ上で作業できます。
docker exec -ti コンテナ名 bash
をしなくても接続できるので、ちょっとコンテナの中を確認したい時に便利です。
イメージ一覧
ネットワーク一覧
私の場合は、docker compose がよしなに作ってくれたサブネットがいくつか。裏でツールがしてくれている処理も、こうなっているんだなと実感できます。
ストレージ一覧
アプリのテンプレート
著名なアプリのコンテナテンプレートです。これだけ並んでいると、今まで触ったことのない技術のコンテナを触ってみようという気になりました。皆様はいかがでしょう?