DockerをWebUIで管理するPortainer

DockerをWebUIで管理するPortainer

Portainerとは

PortainerはDockerをWebUIで管理するソリューションです。これを入れておいて損はないと思います。

コンテナ技術が今後のIT界では必要だともてはやされて、はや数年経ちます。Kubernetesなどのコンテナ自動化ソリューションもほぼすべてのクラウドプラットフォームで導入され、「ヤバイ、そろそろ勉強しなきゃ!?」となっている方も多いと思います。

しかし、Dockerはコマンド操作が基本で、視認性も悪く、慣れるまで時間がかかります。しかも、データの視認性が悪く、思った通りになかなか動かせないものです。

Portainerがあるとその問題を解決できます。

操作感もとても分かりやすく、コマンドラインが苦手な方も使用できるツールです。そして、Kubernetesにも接続できる優れものです。

数分とかからず環境立ち上げができるので、ぜひこれを機会に導入してみましょう。

Portainerの公式URLは以下の通りです。

https://www.portainer.io/

インストール

Docker環境を準備する

PortainerはDocker環境がそろっていれば、数分で立ち上げが可能です。

まずは、DockerとDocker-composeをインストールしてください。

もし、準備が済んでいる人はこの項目を読み飛ばしてください。

この記事ではCentOS7をベースに進めますが、他のLinuxでもWindowsでもMacでも基本は同じですので、自分に合った方法で進めてください。

Dockerは、公式サイトのセットアップ方法は以下のURLです。しかし、飛び先が英語だったり分かりにくいので、Googleで「Docker」「導入」などと検索すれば山ほど出てきますので、適当なものを参考に最新のものをインストールしてください。

https://docs.docker.jp/get-docker.html

次に、Docker-composeをインストールします。公式サイトは以下のURLです。

https://docs.docker.jp/compose/install.html

DockerとDocker-composeが動くようになれば、準備完了です。

Portainerのインストール

PortainerのインストールはDockerで行い、ホストOS側をコントロールできるようにします。

インストールはコマンド二つだけで、ダウンロードを含めても数分でインストールが完了します。

インストール用の公式ドキュメント(Version2.11)は以下のものを参照して下さい。

https://docs.portainer.io/v/ce-2.11/start/install/server/docker/linux

まず、DockerVolumeの設定を行います。

[root@centos7-test ~]# docker volume create portainer_data
portainer_data

次に、本体をインストールします。※最新版は2.11.1なので書き換えてください

[root@centos7-test ~]# docker run -d -p 8000:8000 -p 9443:9443 --name portainer \
>     --restart=always \
>     -v /var/run/docker.sock:/var/run/docker.sock \
>     -v portainer_data:/data \
>     portainer/portainer-ce:2.11.0
Unable to find image 'portainer/portainer-ce:2.11.0' locally
2.11.0: Pulling from portainer/portainer-ce
0ea73420e2bb: Pull complete 
c367f59be2e1: Pull complete 
b71b88d796e2: Pull complete 
Digest: sha256:4f126c5114b63e9d1bceb4b368944d14323329a9a0d4e7bb7eb53c9b7435d498
Status: Downloaded newer image for portainer/portainer-ce:2.11.0
85ce1aef26986880993a14fe7c11585eb76f32cd662d633b33b23a50f6fe2bb1

8000番はシステムが使用するポートで、9443番はhttps用のポートです。もし、httpで使いたい場合は、9000番を追加で公開してください。

Portainerが起動しているかを確認します。

[root@centos7-test ~]# docker ps
CONTAINER ID   IMAGE                           COMMAND        CREATED         STATUS         PORTS                                                                                            NAMES
85ce1aef2698   portainer/portainer-ce:2.11.0   "/portainer"   6 seconds ago   Up 5 seconds   0.0.0.0:8000->8000/tcp, :::8000->8000/tcp, 0.0.0.0:9443->9443/tcp, :::9443->9443/tcp, 9000/tcp   portainer

上記のように、コンテナが起動していれば構築完了です。

初期設定

今回の例では、9443を公開しているので、DockerをホストしているPCのIPアドレスにブラウザでアクセスします。

IDとパスワードを決めて設定します。決めたユーザーで今後ログインができるようになります。

次に表示されたQuickSetupの画面からイルカのアイコンの「GetStarted」をクリックします。

これで、ローカル環境のDockerを制御できるようになった。

「local」のくじらのアイコンのある四角の中をクリックする。

現在はローカル環境のみを接続している状態となる。その中の情報が手に取るようにわかる。

Stackはdocker-composeを使ってグループ化して複数のコンテナを使うようなもの。

不要なnetworkやvolumeの設定も見て、消すこともできるし、新たに追加もできる。

ここまでで立ち上げたのは、PortainerServer。これは、自分自身がWEBインターフェースを提供する。その上で、自分自身のDockerもコントロールするように設定している。

追加設定(Portainer-Agent)

もし、すでに構築済みのPortainerServerが別にあるなら、PortainerAgentをインストールしてそちらに管理を任せることができる。

PortainerAgentのインストールは以下の通り。
[root@centos7-test ~]# docker run -d -p 9001:9001 --name portainer_agent --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/volumes:/var/lib/docker/volumes portainer/agent:2.11.0

あとは、公式ページの追加方法に従って進めるだけ。

https://docs.portainer.io/v/ce-2.11/admin/environments/add/docker

Kubernetesを接続する場合は、Kubernetes上に接続用のデプロイを作成して、Portainerの画面から追加すると参照可能になる。

参考リンク

https://docs.portainer.io/v/ce-2.11/start/install/agent/docker/linux

まとめ

DockerやDocker-composeを理解するには、コマンド操作が欠かせない。しかし、一旦勉強してしまうと、操作が面倒になる人もいる。そういう私のような人はWebGUIを使ってもいいのではないかと思う。

何より管理が簡単になることで、「このコンテナ何だっけ?」ということが少なくなる。また、ログを見たり、設定を確認したりするのも非常に用意だ。

慣れている人は、ポチポチ設定を入れればそれでOKだし、慣れていない人はテンプレートからアプリを選んで入れるのもお勧めです。

Docker-HUBから必要なものを探して、それから環境変数を設定していくというのは意外と面倒です。

ということで、Portainerお勧めです。

ぜひ使ってみてください。