Portainerはいいぞ!~WebアプリでDocker管理~
はじめに
この記事ではPortainerというツールが、Webアプリ上で非常に簡単にDockerコンテナを管理する事ができて、とても便利だったので使い方を紹介します。
Prtainerとは
PortainerとはDockerなどのコンテナをWebアプリ上で管理するためのツールになります。
Portainer自体もDockerコンテナとして動作し、ホスト環境で動いているDockerコンテナや、リモートホスト上などで動いているDockerコンテナについて、複雑なコマンドを打つことなく、GUIで直感的な操作でコンテナ管理ができます。
ちなみにPortainerはOSSで無償のCommunitiEdition(以下Portainer-CE)と、管理機能が強化された有償版のBusinessEdition(以下Portainer-BE)があります。
今回は無償のPortainer-CEとDockerにフォーカスして紹介していきます。
Portainer公式HP:https://www.portainer.io/
Dockerコンテナ管理の課題
Dockerコマンドといっても、コンテナの起動、再起動、停止といった簡単な動きでも、コンテナの状態やIDを調べたりと、いくつかのステップを踏む必要があったりします。
慣れていないと、コマンドや引数を確認しながらになってしまい、結構煩わしく感じる場面があります。
そんな、複雑な手順を踏まず、難しいコマンドも覚える必要も無く、Portainerを使えば、GUI上で様々な管理が簡単にできるようになります。
Portainerの導入
公式HPにも手順は記載されているので詳しい手順はそちらをご覧ください。
- Portainerのコンテナで利用するボリュームを作成
Portainer自身のデータを永続化するためのボリュームを作成
docker volume create portainer_data
- Portainerのコンテナを起動する
docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:lts
※今回はHTTPSを使わないので9443ではなく9000を使います。
初期設定
-
http://localhost:9000
にブラウザでアクセスします - 画面に沿って管理者ユーザーを設定
※初期設定を済ませず一定時間経過してからPortainerにアクセスすると、再起動しろとメッセージが出ます。
初期設定を済ませると管理者でログインして下記のセットアップページに移動します。
トップページに移動したら、画面真ん中あたりの"Get Started"をクリックするとトップページに遷移します
トップページ
こちらがトップページになります。以後、ログインするとこの画面が最初に表示されます。
既に"local"という項目がありますが、これはPortainerが動いているホスト環境のコンテナを管理することができます。
早速、local環境のダッシュボードを見てみましょう。
ダッシュボード
ダッシュボードの各項目について下記に説明を記載します。
- Stacks
- Portainerで複数コンテナやサービスをまとめて管理・デプロイしたものを管理
- Container
- ホスト上で起動しているコンテナを管理
- Images
- ホスト上に保管されているDockerのイメージを管理
- Volume
- ホスト上に作成されたDockerのボリュームを管理
- Networks
- ホスト上に作成されたDockerのネットワークを管理
コンテナの管理
一番よく使う"Contaiers"について説明します。
"Containers"のページに入ると、起動しているコンテナの一覧が表示され、
コンテナの起動状態、イメージ、IP、ポートといった情報が一目で確認できます。
コンテナのデプロイ
次にDockerHubからイメージを落としてコンテナを起動してみたいと思います。
まず、"Containers"のページより"+ Add Container"(白いボタン)を押すと次の画面になります。
Nameには任意のコンテナ名を、ImageにはDockerHubで公開されているイメージのタグを記載します。今回はubuntu:24.04
を使用しました。
続いて、下にスクロールしてConsoleの設定がデフォルトでNone
になっているので、Interactive & TTY
に変更します。
そうしたら、少し上にある"Deploy the container"(白いボタン)をクリックすると、デプロイが開始されます。
そうすると、コンテナ一覧の画面に戻されて、myUbuntu24.04
コンテナがデプロイされたことが分かります。
コンテナの設定を編集
次に、デプロイ済みのコンテナの設定を変更してみたいと思います。
今回はホストの8888ポートをコンテナの8080ポートに転送する設定を入れてみたいと思います。
"Containers"のページより、コンテナ一覧を表示して先ほどデプロイしたmyUbuntu24.04
を選択します。
ページ上部の"Actions"の右端にあるDuplicate/Edit
をクリックすると編集画面になります。
ページ中ほどにある、"Network ports configuration"の項目にある"+ Map additional port"をクリックすると、ポートマッピングの項目が追加されるので、Hostの項目に8888を、Containerの項目に8080を、プロトコルをTCPに選択して、"Deploy the container"のボタンを押して再デプロイします。
再び、コンテナ一覧を確認すると、myUbuntu24.04
のPublished Portsが先ほど設定した通りホスト側の8888ポートをコンテナの8080ポートに転送するようになっているのが確認できました。
クイックアクション
コンテナを立ち上げてデバッグあるいは運用フェーズに入ると、ログの確認だったりコンテナ内部に入って~という事が多いかと思います。
コマンドで実行する場合は、起動コンテナ一覧を表示してID調べて~と手順をいくつか踏む必要がありますが、Portainerのクイックアクションを使えば、GUIで簡単にできます。
クイックアクションはコンテナ一覧の"Quick Actions"の列にアイコンとして整列しています。
クイックアクションの説明
クイックアクションのアイコンについて左から順に説明します
[Logs]
コンテナのログを閲覧できます。閲覧だけでなく、自動更新によるログ表示や、フィルタリングなども出来ます。
[Inspect]
コンテナの構成情報を閲覧できます。
[Stats]
コンテナのリソース状況を閲覧できます。
[Console]
コンテナ内部のコンソールをWebUI上から操作できます。
シェルやユーザーの選択ができます。
[Attach]
こちらもコンソールをWebUI上から操作できるものです。
Consoleとの違いは下記のようになっています。
恐らく、普通に使う分にはConsoleで事足りるかと思います。
- ConsoleとAttachの違いについて
機能 | 目的・特徴 | 使いどころ |
---|---|---|
Console | 新しいシェルを起動してコンテナ内に入る | 調査・コマンド実行・編集など |
Attach | メインプロセスの標準入出力に直接接続する | 対話型コンテナの再接続・出力確認 |
まとめ
Dockerコンテナを管理するならPortainerを導入して損は無いと思います。
自分のローカル環境に展開して使う事もできるので、まずはローカル環境でお試しもできます。
今回は、Portainerの導入とコンテナの新規デプロイ・編集、クイックアクションの使い方だけの紹介でしたが、まだまだ機能はたくさんあるので、実際に使って便利さをもっと感じて頂けたらと思います。
Discussion