技術解説
Portainerを使ってDockerコンテナの管理環境をつくってみた
2022.08.02

NTTPC GPUエンジニア

この記事では、Dockerの管理をGUIで誰でも簡単に行うことができる便利ツール「Portainer」について、インストールから使い方まで詳しく紹介します!
※本記事は2022年時点の情報に基づいたものです
※2024年6月:httpポート番号を修正しました
こんな人向けの記事です
Case1. 大学のプログラミング授業を行うために、学生にDockerイメージを配布しているシステム管理者
Case2. 社内外メンバーが共同で研究開発するプロジェクト用サーバーでDockerコンテナを利用しており、リソース状況の変動に常に気を配る必要がある場合
Portainerの概要
Dockerの管理をGUIで行うためのツールです。
WEBベースで動作するため、ブラウザさえあればOSや端末を問わず利用することができます。シンプルかつ直感的なUIなので、複雑なDockerコマンドを覚える必要はなく、導入後すぐにDocker管理を行える点が優れています。
まずはどんなものか見てみたい方向けに、デモ画面が用意されています。ぜひ一度UIを触ってみてください。
http://demo.portainer.io/
id:admin
pass: tryportainer
(GitHub: https://github.com/portainer/portainer)

図1 デモ画面
バージョン情報
今回の検証に利用したバージョンは下記の通りです。
OS:Ubuntu 20.04 LTS
Docker:20.10.7
Portainer:1.24.2
インストール方法
PortainerはDockerイメージとして提供されており、Dockerコンテナとして動作します。とくに特別なインストール方法をとる必要はありません。
1. Portainerの起動
PortainerはDockerイメージで提供されていますので、コマンドを実行するだけで起動することができます。
事前準備として、まずPortainerのデータを保存するDockerボリュームを作成する必要があります。
フォルダの名前は自由です。ここでは分かりやすく「portainer_data」としてみました。
docker volume create portainer_data
*フォルダでも可です
mkdir -p /home/user/portainer_data
ボリュームが作成できたらさっそくPortainerを起動しましょう。
docker run -d -p 9000:9000 -p 9443:9443 --name portainer \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ce
このコマンドでPortainerが起動します。httpだと9000ポート、httpsだと9443ポートで立ち上がります。https接続の際は、デフォルトだと自己署名の証明書が使用されています。起動後にGUIから独自証明書を適用させることが可能です。
2. Portainerへアクセス
インストールが完了すれば、下記URLからPortainerへアクセスできます。
https://localhost:9443
または、http://localhost:9000
Portainerへの初回アクセス時にパスワードの設定を求められます。
事前に設定されている管理者アカウントのパスワードを入力しましょう。
GUIからあとでユーザーの追加・変更も可能です。
3. Portainerの初期設定
Portainerで管理するDocker環境の設定を行います。
基本的にはデフォルトのlocal環境を管理する形ですが、他のホストマシンのDocker環境も管理することが可能です。
「local」を選択しダッシュボードが表示されれば初期設定完了です。

図2 管理Docker環境選択

図3 ダッシュボード
4. Portainerの使い方
Portainerでよく使うことになる「Containerページ」と「Imagesページ」について説明します。
■Containerページ
TOPページで作成されているコンテナ一覧が確認できます。この画面からコンテナの起動や停止、削除等を行うことができます。 コンテナを選択することで、それぞれのコンテナ詳細ページへ遷移します。

図4 コンテナ一覧
コンテナ詳細ページでは、コンテナの設定変更や現在設定されている環境変数などを確認することができます。

図5 コンテナ詳細
■Imagesページ
TOPページでイメージの一覧が確認できます。DockerHub等からイメージをダウンロードしたり、イメージの削除やアップロード、DockerFileからのビルドを行うこともできます。

図7 イメージ一覧

図8 イメージビルド
■Consoleページ
Consoleページでは、コンテナのコンソールにログインすることができ、Dockerコンテナ内でコマンド実行等を行うことができます。

図6 Console
その他にも、Statusページからはリソースの使用率が確認できます。
5. まとめ
当社では、多数のDockerコンテナを管理しているため、どのようにDockerを管理するかが課題となっていました。
ご覧いただいたとおり、Portainerを導入することで、各コンテナの状況をまとめて確認することができます。リソース配分や日々の運用に役立っています。
また、Portainerには今回紹介した機能だけでなく、Docker Composeの利用やDockerネットワークを管理できる等さまざまな機能が備わっています。コマンドのみでは複雑で難しかったDockerの管理も、Portainerを使うことでより簡単に操作できるようになり、単に管理するだけでなく、Dockerの機能を最大限引き出せると考えています。
日々の運用・管理にお悩みのDocker管理者のみなさまの負荷を軽減できれば幸いです。