Portainer:ブラウザからのコンテナ管理
Webコンテナ管理パネルのインストール方法、その利便性、保護なしでインターネットに公開すべきでない理由を説明します。
更新日 2026年8月23日
PortainerはDocker用のWebインターフェースです。コンテナの一覧、ログ、コンテナへのコンソール、ボリューム、ネットワーク、Composeスタックを扱えます。「何が落ちたのか」を確認するためだけに毎回SSHするのは面倒、というときに便利です。
インストール
docker volume create portainer_data
docker run -d \
--name portainer \
--restart unless-stopped \
-p 127.0.0.1:9443:9443 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:2.21.4
ポートはローカルインターフェースにバインドされています。パネルはSSHトンネル経由で開けます。
ssh -L 9443:127.0.0.1:9443 root@<machine-address>
その後、ブラウザで https://localhost:9443 を開きます。証明書は自己署名なのでブラウザが警告を出しますが、トンネル経由でのアクセスでは正常です。
最初の管理者は、最初にパネルを開いた人が作成します。ポートをインターネットに公開したままお茶でも飲みに行っていると、管理者はあなたではなくなります。Portainerは起動から数分で登録を締め切りますが、それを当てにはしないでください。アカウントはすぐに作成しましょう。
なぜ危険なのか、どうすべきか
このパネルは /var/run/docker.sock をマウントします。このソケットへのアクセスはマシンのroot権限と同等です。これを介して、ホストのrootをマウントしたコンテナを起動できてしまいます。したがって、次のルールを守ってください。
- ポートをインターネットに公開しないでください。SSHトンネルか、証明書と二要素認証を備えたWebサーバーを使います。
- 管理者パスワードは長く一意なものにし、マシンのrootパスワードと同じにしないでください。
- 共有ログインではなく、人ごとに権限を制限した個別アカウントを発行してください。
- パネルをほとんど使わないなら、コンテナは停止したままにし、必要なときに起動します:
docker start portainer。
何が便利か
- ログ — 検索とハイライト付きで、80×24のテキストコンソールでの
docker logsより速く確認できます。 - コンテナへのコンソール — ブラウザからそのまま操作できます。
- スタック —
compose.yamlの内容を貼り付けてデプロイをクリックするだけです。単発のサービスには向いていますが、常設のサービスならファイルをディスク上に置いてバージョン管理するほうが安全です。パネルで作成したスタックは、再インストール時に簡単に失われます。 - ボリュームとイメージ — 何がどれだけ容量を使っているか確認でき、容量不足のトラブルシューティングに役立ちます。
やってはいけないこと
- サービス定義の唯一のコピーをここに置くこと。ディスク上のディレクトリにある
compose.yamlのほうがパネルより長く残ります。 - ボリュームがどうなるか理解しないまま「recreate」ボタンでコンテナを更新すること。コンテナの更新を参照してください。
- 監視の代わりにすること。Portainerは現在の状態を表示するだけで履歴はなく、アラートも送信しません。それにはUptime Kumaが必要です。
リソース
コンテナは約100 MBのメモリを使用し、どのティアでも動作します。データは portainer_data ボリュームに保存されます: アカウント、設定、スタックです。バックアップに含めるか、パネルを再度セットアップする覚悟をしておきましょう。
よくある間違い
- パネルが管理するのはこのマシンだけだと忘れること。 2台目のマシンも管理できますが、それにはそのマシン上のエージェントと、両者間で開いたポートが必要です。
- パネル自体に
latestタグを使うこと。 メジャーアップデートでデータ形式が変わります。バージョンを固定してください。 - クリーンアップで「未使用」のボリュームを削除すること。 Portainerは警告を出しますが、人は読まずにボタンを押します。データベースのボリュームは、コンテナが停止している間は未使用に見えます。ボリュームを参照してください。