概要
Podman Desktop は、ローカル開発者環境でのコンテナ化ソフトウェア・アプリケーションの操作を単純化する無料のオープンソースツールです。開発者は Podman Desktop を使用することで、ローカルの Windows 環境、macOS 環境、または Linux® 環境でグラフィカル・ユーザー・インタフェース (GUI) を介してコンテナを管理できます。
Podman Desktop は、コンテナ管理用ツールの Podman プロジェクトに関連しています。Red Hat は、Podman および Podman Desktop オープンソース・プロジェクトの主要なコントリビューターです。
コンテナと Kubernetes を使用する理由
Podman Desktop のメリットは、コンテナを使用するメリットとよく似ています。コンテナは、アプリケーションの実行に必要なすべてのファイルを、さまざまなコンピューティング環境に一貫して容易にデプロイできるイメージにパッケージ化します。コンテナ化されたアプリケーションは互いに分離されているため、1 つのアプリケーションの問題が他のアプリケーションに影響することはありません。コンテナを停止したり再起動したりする際に、他のコンテナやサービスを中断する必要はありません。
コンテナ化のアプローチは、ハイブリッドクラウド開発に適しています。開発環境、テスト環境、本番環境がオンプレミスか、クラウドか、マルチクラウドかに関わらず、アプリケーションの構築とテストが可能であり、そのアプリケーションが同じように機能することが期待できます。
ここで、コンテナ化されたサービスを使用して大規模なエンタープライズのユースケースをサポートすることを考えてみてください。そのためには、コンピューティングリソースの共有プールを利用して、多くのさまざまなコンテナを連携させる必要があるでしょう。そこで役立つのが、大規模なコンテナ群を管理するために構築されたオープンソースのコンテナ・オーケストレーション・プラットフォームである Kubernetes です。コンテナ化された開発と Kubernetes によって、ソフトウェアチームは迅速なイテレーションとスケーラビリティを維持しながら、大規模なプロジェクトをサポートできます。また、継続的インテグレーションおよび継続的デリバリー (CI/CD) パイプラインの一部としてコンテナのセキュリティ制御を確立することもできます。
これはすべて素晴らしいことのように思えますが、コンテナを活用するには、アプリケーションチームが事前に Kubernetes 用のソフトウェアを設計し、構築する必要があります。多くのソフトウェアチームにおいて、Kubernetes の使用経験は限定的です。Podman Desktop は、開発者がコンテナに慣れ、実践的な経験を通じて Kubernetes の理解を深めるための手段となります。また、コンテナ化アプリケーションの継続的なローカル開発を処理するのに役立ちます。
Podman Desktop を使用すると、外部のリソースに影響を与えたり、運用チームによるインフラストラクチャのプロビジョニングを待ったりすることなく、ローカル環境で開発することができます。
Podman Desktop について詳しく説明する前に、Podman プロジェクトとその成果について見てみましょう。
Red Hat のリソース
Podman とは
Podman (pod manager の略) は、コンテナを操作するためのオープンソース・プロジェクトであり、Podman Desktop の基盤となっています。Podman はデフォルトでルートレスコンテナをサポートしており、root 権限の必要性を最小限に抑え、システムの脆弱性のリスクを軽減することでセキュリティを強化します。
Podman は、Kubernetes pod と同様、コンテナを pod にグループ化し、まとまって稼働してリソースを共有します。Podman は、コマンドライン・インタフェース (CLI) と libpod ライブラリ (コンテナ、pod、コンテナイメージ、ボリュームを管理するアプリケーション・プログラミング・インタフェース (API) を提供) を介してこれらの pod を管理します。
デフォルトでは、Podman は Open Container Initiative (OCI) コンテナを作成し、サポートします。OCI コンテナは、コンテナのランタイムと形式の業界標準を満たすように設計されています。また、Docker 形式のイメージも実行できます。Podman と Docker は互換性があり、Podman は Docker のフル機能を備えた代替手段として使用することも、Docker と連携させることもできます。
Podman Desktop でできること
Podman Desktop GUI によって、ワークステーションまたはノート PC でコンテナと pod をローカルで構築、実行、管理、デバッグできます。Kubernetes の有無に関係なく pod を実行し、複数のコンテナエンジンを管理できます。
コンテナの操作
Podman Desktop を使用すると、任意のレジストリからコンテナイメージを取得できます。さらに、さまざまなコンテナを単一の統合ビューで表示し、マウス操作でコンテナの起動、停止、削除、再起動、エクスポート、デプロイを実行できます。次のことが可能です。
- Podman Desktop インタフェースを離れることなく、ログを表示し、実行中のコンテナへのシェルアクセスを取得する
- 独自のコンテナイメージを構築し、任意のレジストリにプッシュする
- コンテナをグループ化してアプリケーションの pod とし、pod の統合ログを表示する
Kubernetes の操作
Podman Desktop の使用は、デーモンレス・アーキテクチャや pod といった Kubernetes の概念を理解し、それらを日常的に使用できるようになるために最適な方法です。次のことが可能です。
- Kubernetes の命令を YAML 形式で生成し、Kubernetes デプロイメント用のアプリケーションを準備する
- Kubernetes YAML を、クラスタにデプロイする前にローカルでテストする
- ローカルの Kubernetes クラスタをスピンアップし、アプリケーションをテストする
- アプリケーションをデプロイメントプロセスにプッシュする
エンタープライズ機能の有効化
Podman Desktop には、大規模なエンタープライズ環境で作業する際に役立つ機能が搭載されています。Red Hat® OpenShift® を介して、仮想プライベートネットワーク (VPN) とプロキシの構成、複数のイメージレジストリとの対話、リモートクラスタへの接続とデプロイができます。
起動可能なコンテナの操作
起動可能なコンテナには、完全なオペレーティングシステムが組み込まれています。Podman Desktop の bootc 拡張機能を使用すると、ベアメタルハードウェア、Amazon Web Services、仮想マシンなどに共通の形式で起動可能なコンテナイメージを作成できます。
Podman Desktop 拡張機能の活用
拡張機能を使用して Podman Desktop に機能を追加できます。コンテナエンジン・プロバイダーや Kubernetes プロバイダーとの統合を追加する拡張機能や、アクション、メニュー、構成、その他の便利な機能を追加する拡張機能があります。
次は、大規模言語モデル (LLM) と Red Hat プラットフォームの操作を単純化する 2 つの拡張パックを見ていきます。
Podman AI Lab とは
Podman AI Lab 拡張パックを導入すると、生成人工知能 (生成 AI) アプリケーションを試すためのエントリーポイントとして Podman Desktop を使用できます。
Podman AI Lab は、ローカル環境で大規模言語モデル (LLM) アプリケーションを構築、テスト、実行するための GUI を提供します。LLM をローカルで実行すると、アーキテクチャが単純化され、機密データを外部の AI サービスと共有するリスクを排除できます。
Podman AI Lab には、チャットボットやコード生成など、一般的な生成 AI のユースケース向けのレシピのカタログが含まれています。オープンソースライセンス LLM の厳選されたリストから選択して、ダウンロードし、ローカルで実行できます。わずか数ステップでプレイグラウンド環境をセットアップし、さまざまな LLM を試すこともできます。
Podman Desktop Red Hat 拡張パックとは
Podman Desktop 用の Red Hat 拡張パックは、Red Hat プラットフォームを使用するための入り口となります。Red Hat OpenShift にデプロイするアプリケーションを開発している場合、以下の無料の拡張機能でローカル環境と本番環境を橋渡しできます。
Red Hat OpenShift Local 拡張機能
Red Hat OpenShift はエンタープライズ向けのアプリケーション・プラットフォームです。この拡張機能によって、ローカル環境での Red Hat OpenShift の使用を開始し、単一ノードの Red Hat OpenShift クラスタの構成およびセットアップ方法を学ぶことができます。
Developer Sandbox for Red Hat OpenShift 拡張機能
Developer Sandbox for Red Hat OpenShift によって、アプリケーションの構築、テスト、検査、デバッグ、デプロイのための Red Hat OpenShift リモート環境を共有できます。
Red Hat SSO 拡張機能
Red Hat のシングルサインオン (SSO) テクノロジーにより、Red Hat アカウントの作成とログインが単純化されます。Red Hat SSO 拡張機能によって、Red Hat Developer プログラムへの登録、Red Hat Enterprise Linux イメージモードバイナリへのアクセスなどが可能になります。
bootc 拡張機能
起動可能なコンテナは、コンテナ内にオペレーティングシステムが直接組み込まれたディスクイメージです。bootc 拡張機能は、Podman Desktop で起動可能なコンテナと通常のコンテナを区別するのに役立ちます。
Podman Desktop と Docker Desktop の違い
Docker 社とそのユーザーコミュニティは、コンテナアプリケーションの業界標準を構築し、普及させました。Docker には、限定的なユースケースについて無料で使用できる Docker Desktop という GUI があります。
Podman Desktop と Docker Desktop はどちらもコンテナを管理するための GUI ツールですが、異なるサービスです。
Podman と Docker の最も重要なアーキテクチャ上の違いは、Podman がデーモンレスであることです。これにより、ローカル開発の実践手法を Kubernetes 環境に合わせて調整できるという Kubernetes の重要な特性がもたらされます。デーモンレス・アーキテクチャでは root 権限を持つプロセスを使用することなくコンテナを実行できるので、コンテナ環境のアクセス性が向上し、セキュリティリスクが軽減されます。Podman と Docker のデスクトップバージョンでも、この相違点は同じです。
Podman Desktop は主に Red Hat が後援し、開発しているため、Red Hat OpenShift などの他のテクノロジーと簡単に統合できます。
Podman は Docker と互換性があるため、いずれかのプラットフォームで作成したコンテナはもう一方のプラットフォームでも動作します。Podman Desktop で Docker Desktop の拡張機能を実行することもできます。
Red Hat でできること
Podman Desktop は、コンテナや Kubernetes pod の使用経験を積むための助けとなり、Red Hat Enterprise Linux や Red Hat OpenShift など、コンテナをサポートする他の Red Hat テクノロジーを活用するための入り口になります。
Red Hat Enterprise Linux は、エンタープライズ環境での Linux コンテナの実行における業界標準です。コンテナを容易にスピンアップし、デプロイを管理できるほか、新規アプリケーションの開発を加速できます。オープン・ハイブリッドクラウド環境全体で、Red Hat Enterprise Linux に可搬性の高いアプリケーションとコンテナを構築して、アジリティを維持すると同時に、新たな目標に応じて変革を常に推進できます。
Red Hat OpenShift は、アプリケーションを大規模に開発、モダナイズ、デプロイするための、信頼性が高く、包括的で一貫性のあるプラットフォームです。Kubernetes を基盤としており、アプリケーションを市場に投入するために必要なサービス一式を任意のインフラストラクチャ上に構築します。Red Hat OpenShift を活用することで、開発者はコンテナ化された新しいアプリケーションを作成し、ホストし、クラウドでデプロイできるようになります。さらに、スケーラビリティ、制御性、オーケストレーションを提供することで、優れたアイデアが迅速かつ簡単にビジネスにつながるのを助けます。
Red Hat 公式ブログ
Red Hat のお客様、パートナー、およびコミュニティのエコシステムに関する最新の情報を入手しましょう。