Portainerを使ってみる

近頃DockerをWeb上で管理できるツールを探していたところ「Portainer」というものを見つけたので試してみたいと思う。

ブラウザ上でDockerを操作でき、利便性が向上しそうなので導入してみることに…

導入 & 設定

導入は非常にシンプルで、以下のようなdocker-compose.ymlを書き、docker-compose upするだけ。

version: '3'
services:
  portainer:
    image: portainer/portainer-ce
    restart: unless-stopped
    ports:
      - 8000:8000
      - 9000:9000
    volumes:
      - ./data:/data
      - /var/run/docker.sock:/var/run/docker.sock

コンテナを起動したら、ブラウザから「http://<コンテナを起動しているノードのIP>:9000」に対してアクセスすると以下のようなページが開く。

管理者ユーザの設定画面

ここで、初期の管理者のユーザ名とパスワードを設定し、「Create user」をクリックすると次の画面に進む。

管理対象の選択画面

ここでは、portainerを使用して何を管理するか選択することができるようで、Kubernetesを管理することができる模様。今回はDockerを選択する。「Connect」をクリックするとportainerの管理トップ画面が表示される。

管理トップ画面

この画面では、管理対象のノードが一覧で表示される。管理したいノードをクリックすると、そのノード上で起動しているスタックやコンテナに対して様々な操作を行うことができる。

App Templates機能

今回は「App Templates」という機能を使ってWordpressを構築してみたいと思う。この機能は、メジャーなサービスを簡単に起動することができる機能のようだ。

当然、自身でdocker-compose.ymlを書き、それをデプロイすることも可能だ。

App Templates

スタックの名前とデータベースのrootパスワードを入力し、「Deploy the stack」をクリックするとスタックが生成される。

WordPressをデプロイしてみる

デプロイが完了したあと「Stacks」の項目から該当のスタックを覗いてみると、以下のようなdocker-compose.ymlが生成された事がわかった。

生成されたdocker-compose.yml

App Templatesを使用して生成されたスタックは、デフォルトでポート番号がランダムに決定されるようになっているようだ。

今回はこれを80番ポートで公開するように設定し、「Update the stack」をクリックして、コンテナを再度作り直してみた。

その後ブラウザから「http://<WordpressをデプロイしたノードのIP>」に対してアクセスしてみると、無事Wordpressの初期設定画面が現れた。

WordPressの初期設定画面

ノードの追加

portainerを使用して管理するノードはメニューの「Endpoints」から追加することができる。

今回はportainer-agentをインストールしたノードを追加してみる。

下準備としてportainer-agentを管理したいノードで動かす必要がある。

以下のようなdocker-compose.ymlを作成し、起動する。

version: '3'
services:
  portainer-agent:
    image: portainer/agent
    restart: unless-stopped
    ports:
      - 9001:9001
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/lib/docker/volumes:/var/lib/docker/volumes

その後、Endpointsの画面で「Add endpoints」をクリックする。

Endpoints

するとこのような画面が出てきて、管理対象のノードの種類と名前、エンドポイントのアドレスを入力し、「Add endpoint」をクリックするとノードを追加することができる。

ノードの追加画面

追加した後管理トップページを見ると、管理対象のノードが増えていることが確認できる。

ノード追加後の管理トップページ

終わりに

以上、DockerをWeb上で管理できる「Portainer」を紹介した。

今回、私自身が管理しているサーバ群にも導入したが、このようなツールを使ってみるとサーバの管理が非常に便利になったと感じた。多数のサーバを管理している人にはとても良いツールなのではないだろうか。

今後もこのような物があれば紹介したいと思う。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です