よくある質問・用語集

  • もっと調べる
  • どうやって使う?

Portainerとは

Portainer(読み方:ポーテナー)とは、コンテナを管理するオープンソースソフトウェアである。使い方が難しいとされているDocker単体、Kubernetes、Nomadのデプロイが可能である。Portainerを使うことで、これらで構築したコンテナを簡単に構成、監視することができる。 Portainerは、「Portainer.io」という名前で表記されることもある。ライセンスは、zlib Licenseのもとで公開されている。

Portainerのダッシュボード

Portainerのダッシュボード画面

なお、Portainerには、以下の2つの製品パッケージがあり、どちらもコミュニティのサポートを受けることができる。

  • Portainer Community Edition (Portainer CE)

    Portainer CEは、オープンソースで提供されており、個人での使用を目的としている。ソースコードはPortainer公式サイトやGitHubのサイト内に掲載されている。

  • Portainer Business Edition (Portainer BE)

    Portainer BEは、エンタープライズITの要求を満たすために、Portainer CEのプラットフォーム管理やIAM機能等が強化されたバージョンである。Portainer BEの使用には、商用ライセンスが必要である。企業やビジネス向けに利用される。

Portainerでできること

Portainerが利用されるDockerなどのコンテナ型仮想基盤では、1つのOSの上で完全に独立した複数のアプリケーションを動作させる。ホスト型やハイパーバイザ型の仮想基盤に比べ省リソースで動作することができ、より多くのアプリケーションを稼働できるといったメリットがある。

しかし一方で、1サービス/1コンテナで動作させるため、多数のコンテナが乱立する傾向にある。そのため、コンテナが増加し、一つ一つのコンテナを管理することが難しくなる。また、コンテナ同士が連携して動作するため、連携情報も管理しなければならないという課題がある。Portainerは、コンテナ管理のソフトウェアとして、このような課題を解決することができる。

また、Dockerコンテナを管理するツールのデファクトスタンダードとして、Kubernetesが知られている。しかし、Kubernetesを使いこなすには専門的な知識が必要となる。そんなKubernetesを管理しやすくするソフトウェアとしても、Portainerを利用することができる。なお、Kubernetesを管理するためのツールとしては、Portainerの他にRancherというソフトウェアがある。

Portainerの特徴

Portainerには次のような特徴がある。

複数のコンテナ環境の管理

Portainerは、複数のDockerコンテナを、1つのWebインターフェース上で一元管理することができる。この機能はスタックと呼ばれ、Docker composeを使用してコンテナを作成する。Docker composeでは、YAML形式で設定情報を指定して、スタックを起動する。コンテナと同じように、スタックの作成、起動、停止、削除等を行うことができる。YAML形式のDocker composeファイルには、コンテナのビルド情報、ネットワークの情報、起動方法など、動作するコンテナの情報を記載する。また、一つのファイルに複数のコンテナを記載し、その依存関係を定義することも可能である。

複数のコンテナ環境を管理する際の接続方法は以下の通りである。

  • Portainer Agent

    Portainer Serverと通信ができるセキュアな環境内での使用を想定した接続方法。Portainer Serverから、コンテナ環境にインストールしたPortainer Agentに接続することで連携を行う。

  • Portainer Edge Agent

    外部からの接続ができない環境でも使用することができる接続方法。コンテナ環境にインストールしたPortainer Edge AgentからPortainer Serverに接続することで連携を行う。

  • Docker API

    PortainerからDockerコンテナに存在するDocker APIに直接接続して連携を行う。

システム構成図

接続方法


ブラウザで表示されるコンテナリストの一覧画面では、コンテナの起動や停止等の操作を行うことができる。 また、コンテナイメージの一覧画面では、コンテナイメージのダウンロードや削除、エクスポートやインポートを行うことができる。コンテナイメージをダウンロードするレジストリは、デフォルトの状態ではDocker Hubを選択できるようになっている。

コンテナイメージの一覧表示

Container image一覧画面


また、ネットワーク情報の一覧画面では、ネットワークアドレスやコンテナで使うIPアドレスを入力し、ネットワーク情報を追加することもできる。

WebUIによる操作

Portainerは、WebUIで操作することができ、ブラウザがあれば、WindowsやLinuxなどのOSや端末を問わず動作する。Portainerを使うことで、コマンド入力が必要で使い方が難しいとされているDocker単体、Kubernetes、Nomadのコンテナ管理を、知識や技術のない一般的なユーザでも簡単に行うことができる。ただし、現在のPortainerのWeb画面は英語表示で、日本語での表示に対応していないという問題がある。

Portainerのコンテナ統計情報表示画面

コンテナ統計情報表示画面

管理するコンテナイメージをダウンロードしたら、テンプレートを使用してコンテナを起動することができる。テンプレートは、予め用意されているアプリケーションテンプレートの他、独自に作成したカスタムテンプレートを使用することも可能である。

また、Web画面では、稼働しているコンテナのログや詳細情報(Docker inspectの結果)、メモリ使用量、CPU使用率、ネットワーク使用量、I/O使用量などの統計情報を項目ごとに確認することができる。さらに、各コンテナのコンソール環境に接続することも可能である。

アクセス制御が可能

登録されているユーザやチームごとに、Dockerへのアクセス制限を設定することが可能である。Webの管理画面でのチーム作成時、登録済みのユーザからチームリーダを選択し、チームリーダはチームに所属するユーザを登録することができる。そして、ロールの設定で、ユーザ毎にコンテナ環境へのアクセス権限を設定することができる。なお、この機能はPortainer BEでのみ有効な機能である。Portainer CEでは、デフォルトのユーザの権限だけ使用することができる。

LDAPによるユーザ認証

ユーザ認証としては、LDAPに対応している。そのため、LDAPに登録しているIDやパスワードなどのユーザデータをそのまま利用することができる。また、LDAPのグループ検索を設定することで、LDAP認証の際にユーザが所属しているグループ名を取得することができる。グループ名がPortainerに設定されているチーム名と一致する場合、そのチームの権限で操作することができる。ただし、Portainer CEではLDAP認証の機能に制限があり、LDAPサーバを複数指定することや、LDAPのグループごとに管理者権限を与えるなどの機能は利用できない。

シングルサインオン(OpenID Connect)に対応

OAuthによるシングルサインオン(SSO)を利用することで、他のシステムと同じID・パスワードでPortainerにログインすることができる。また、ログインの際に自動的にユーザー登録をしたり、チームに所属したりすることも可能である。

利用場面

Portainerの利用が想定される場面としては、以下のような場合がある。

小規模なコンテナ環境

Dockerコンテナを管理する場合、Kubernetesの管理用のダッシュボードを使用する方法がある。大規模なコンテナ環境を構築する場合であれば、冗長性を確保するため、Kubernetesの利用をおすすめしている。しかし、Kubernetesでコンテナを管理する場合、最低3~5台のコンテナ実行環境が必要である。一方、Portainerでは、サーバを1台しか利用しない場合でもコンテナの管理を行うことができる。そのため、検証環境など小規模なシステムのコンテナを管理するような使い方に適している。

IoT機械学習プラットフォーム

Portainerのようなコンテナ型仮想化の技術は、IoTに必要な機能を提供する基盤でも利用することができる。特に、IoT機械学習プラットフォームと呼ばれる、収集したIoTデータを何らかの機械学習アルゴリズムで処理するためのプラットフォームで活用することができる。

コンテナ管理のOSS

他にも、コンテナを管理するツールには以下のようなソフトウェアがある。

Kubernetes

Kubernetesとは、コンテナにおけるアプリケーションのデプロイ、スケール、管理の自動化を行うオープンソースソフトウェアである。GoogleやAmazon、Microsoftなど、世界中のさまざまなクラウドベンダーにも採用され、パブリッククラウドサービスとして提供されている。

Dockerコンテナでは、1つのコンテナに対し1つのアプリケーションが動作するような仕組みが推奨されているため、複数のコンテナを組み合わせて1つの機能を提供する場合が多い。Kubernetesでは、このようなDockerコンテナのセットをPodとして管理している。Podを定義しておくことで、複数のDockerコンテナをサービス単位で管理することができ、サービスの起動や停止をまとめて行うことが可能である。

Rancher

Rancherは、Kubernetesを管理するためのオープンソースソフトウェアである。導入が難しい、学習・管理コストが高いといったKubernetesの難点を解消するために開発された。Rancherを使うことで、Kubernetesクラスタの構築・アップデートやPod等のKubernetesリソースを、専門的な知識や技術をもたない人でも管理することができる。Rancherでは、KubernetesのPodやDeploymentなどのリソースを総称して、ワークロードと呼ぶ。

また、Kubernetesでコンテナ環境を起動させるためにはコマンド操作が必要だが、Rancherを使うことで、ほぼ全ての機能をWebインターフェースから操作することができる。

デージーネットの取り組み

デージーネットでは、Portainerを利用した、Dockerコンテナ環境のシステム構築サービスを行っている。これまで、DockerとKubernetesを利用した開発環境の構築や、DockerとPortainerを利用したAI開発環境の提案を行った実績がある。お客様のシステム要件やニーズを理解した上で、Kubernetes等のコンテナ管理ツールを含め最適なシステムを提案している。

システム構築サービスを提供した後、導入後支援サービスとして、Open Smart Assistanceを提供している。Open Smart Assistanceには、システムの使い方や運用方法に関するQ&A対応、最新のセキュリティ情報提供、障害調査・回避、障害時オンサイト対応・システム再構築などが含まれている。

また、今回PortainerのDockerスタンドアロンの機能について調査を行い、調査報告書に掲載している。基本の使い方やインストール方法、機能等について、設定方法の例とともに日本語で詳しく解説している。今後は、Dockerスタンドアロンだけでなく、KubernetesやDocker Swarm等の環境で利用する際の機能についても調査を行っていく。

【カテゴリ】:仮想化  仮想基盤  オープンソースソフトウェア  

  • もっと調べる
  • どうやって使う?

【Webセミナー】自社でOSSを採用しよう!今更聞けないOSSの基本セミナー

日程: 11月22日(金)Webセミナー「BigBlueButton」を使用します。
内容: OSSを導入したいけど、どこから手をつければいいかわからない方必見!
ご興味のあるかたはぜひご参加ください。

セミナー申込

関連用語

Portainerに関連するページ(事例など)

Portainerとは先頭へ