Podman (POD MANAger) は、コンテナーとイメージ、それらのコンテナーにマウントされたボリューム、およびコンテナーのグループから作成されたポッドを管理するためのツールです。 Podman は Linux 上でコンテナを実行しますが、Podman が管理する仮想マシンを使用して Mac および Windows システムでも使用できます。 Podman は、このリポジトリにも含まれているコンテナ ライフサイクル管理用のライブラリである libpod に基づいています。 libpod ライブラリは、コンテナ、ポッド、コンテナ イメージ、およびボリュームを管理するための API を提供します。
Podman は、年に 4 回、2 月、5 月、8 月、11 月の第 2 週に新しいメジャー リリースまたはマイナー リリースをリリースします。パッチのリリースはより頻繁に行われ、バグ修正をユーザーに提供するためにいつでも行われる可能性があります。すべてのリリースは PGP 署名されています。リリースを承認されたチームのメンバーの公開キーはここにあります。
継続的インテグレーション:
ゴードック:
ダウンロード
大まかに言うと、Podman と libpod の範囲は次のとおりです。
OCI や Docker イメージなど、複数のコンテナー イメージ形式のサポート。
これらのイメージの完全な管理には、さまざまなソースからの取得 (信頼と検証を含む)、作成 (Containerfile または Dockerfile 経由で構築、またはコンテナーからコミット)、レジストリやその他のストレージ バックエンドへのプッシュが含まれます。
作成 (イメージと展開されたルート ファイルシステムの両方から)、実行、チェックポイント設定と復元 (CRIU 経由)、削除を含む、コンテナーのライフサイクルの完全な管理。
Netavark を使用したコンテナ ネットワークの完全な管理。
リソースを共有し、一緒に管理されるコンテナーのグループであるポッドのサポート。
root またはその他の昇格された権限なしでコンテナーとポッドを実行するためのサポート。
コンテナーとポッドのリソースの分離。
Docker 互換の CLI インターフェイスのサポート。コンテナをローカルとリモート システムの両方で実行できます。
マネージャー デーモンがないため、セキュリティが向上し、アイドル時のリソース使用率が低くなります。
Docker 互換インターフェイスと、高度な Podman 機能を公開する改良されたインターフェイスの両方を提供する REST API のサポート。
podman machine
によって実行される仮想マシンを介した Windows および Mac での実行のサポート。
Podman デスクトップやその他の開発者のユースケースをより適切にサポートするために、 podman machine
がさらに改善されました。
conmon-rs のサポート。これにより、コンテナーのロギングが向上します。
BuildKit API のサポート。
パフォーマンスと安定性の向上。
Podman バイナリのサイズの削減。
プロジェクトのセキュリティ問題を特定したと思われる場合は、GitHub 問題トラッカー、メーリング リスト、または IRC を通じて問題を公に報告しないでください。代わりに、できるだけ多くの詳細を記載した電子メールを[email protected]
に送信してください。これはコアメンテナのためのプライベートメーリングリストです。
一般的な質問やディスカッションについては、Podman のチャンネルをご利用ください。
問題/バグおよび機能に関するディスカッションについては、GitHub の問題および PR 追跡システムを使用できます。
lists.podman.io
にはメーリング リストもあります。サブスクライブするには、 subscribe
という件名でメッセージを[email protected]
に送信します。
Podman は、setuid バイナリを必要とせずに、通常のユーザーとして簡単に実行できます。 root なしで実行すると、Podman コンテナはユーザー名前空間を使用して、コンテナ内の root を Podman を実行しているユーザーに設定します。 Rootless Podman は、コンテナを実行しているユーザーが持たない権限を持たずに、ロックダウンされたコンテナを実行します。これらの制限の一部は ( --privileged
などを介して) 解除できますが、ルートレス コンテナーは、コンテナーを起動したユーザー以上の権限を持つことはありません。 Podman をユーザーとして実行し、ホストから/etc/passwd
にマウントしても、ユーザーには変更する権限がないため、変更することはできません。
通常の Podman 機能のほぼすべてが利用可能ですが、いくつかの欠点があります。最近の Podman リリースは追加設定なしで rootless を実行できるはずですが、オペレーティング システムではインストール ガイドに詳細が記載されている追加設定が必要になる場合があります。
rootless Podman を使用するには、管理者による少しの設定が必要です。必要な設定はここに記載されています。
Podman Desktop は、Linux、Windows、および Mac マシン上で Podman および Kubernetes のローカル開発環境を提供します。これは、Linux 以外のオペレーティング システムでpodman machine
バックエンドを使用してコンテナーを実行する、Podman 用のフル機能のデスクトップ UI フロントエンドです。完全なコンテナーのライフサイクル管理 (イメージの構築、プル、プッシュ、コンテナーの作成と管理、ポッドの作成と管理、Kubernetes YAML の操作) をサポートします。このプロジェクトは GitHub 上で開発されており、貢献を歓迎します。
特殊な署名とさまざまなストレージ バックエンドへのイメージのプッシュ。これらのタスクについては、Skopeo を参照してください。
コンテナ管理のための Kubernetes CRI インターフェイスのサポート。 CRI-O デーモンはこれに特化しています。
Podman は、さまざまな側面で OCI プロジェクトと最高のライブラリを使用します。
ランタイム: OCI ランタイム ツールを使用して、crun や runc などの OCI 準拠のランタイムで使用できる OCI ランタイム構成を生成します。
画像: イメージ管理はコンテナー/イメージ ライブラリを使用します。
ストレージ: コンテナーとイメージのストレージはコンテナー/ストレージによって管理されます。
ネットワーキング: Netavark および Aardvark を使用したネットワーキングのサポート。 ルートレス ネットワークは、pasta または slirp4netns を介して処理されます。
ビルド: ビルドは Buildah 経由でサポートされます。
Conmon: Conmon は OCI ランタイムを監視するツールで、Podman と CRI-O の両方で使用されます。
Seccomp: Podman、Buildah、および CRI-O 用の統合 Seccomp ポリシー。
ブログやリリースのお知らせなどについては、podman.io Web サイトをチェックしてください。
インストールに関するメモPodman を環境にインストールする方法に関する情報。
OCI フックのサポートPodman がコンテナの起動時に実行するように OCI フックを構成する方法に関する情報。
Podman REST API に関するPodman APIドキュメント。
Podman コマンドPodman コマンドのリストとそのマニュアル ページへのリンク、および多くの場合、使用中のコマンドを示すビデオ。
Podman コンテナ イメージquay.io にある Podman コンテナ イメージに関する情報。
Podman トラブルシューティング ガイドPodman の一般的な問題と解決策のリスト。
Podman 使用状況の転送Podman を利用するインフラストラクチャに関連する、運用および開発の転送に役立つ情報。 このページには、Docker コマンドとそれに相当する Podman コマンドを示す表が含まれています。
チュートリアルPodman の使用に関するチュートリアル。
リモート クライアントPodman リモート クライアントの使用方法についての簡単な説明。
Rootless 環境での Podman の基本的なセットアップと使用Rootless Podman を実行するために必要なセットアップと構成を示すチュートリアル。
リリース ノートPodman の最新バージョンのリリース ノート。
貢献このプロジェクトへの貢献に関する情報。
Buildah と Podman は、ほとんどの Linux プラットフォームで利用できる 2 つの補完的なオープンソース プロジェクトであり、どちらのプロジェクトも GitHub.com にあり、Buildah はこちら、Podman はこちらです。 Buildah と Podman はどちらも、Open Container Initiative (OCI) イメージとコンテナーで動作するコマンド ライン ツールです。 2 つのプロジェクトは専門分野で異なります。
Buildah は OCI イメージの構築を専門としています。 Buildah のコマンドは、Dockerfile にあるすべてのコマンドを複製します。 これにより、root 権限を必要とせずに、Dockerfile の有無にかかわらずイメージを構築できます。 Buildah の最終目標は、イメージをビルドするための下位レベルの coreutils インターフェイスを提供することです。 Dockerfile を使用せずにイメージを構築できる柔軟性により、他のスクリプト言語を構築プロセスに統合できます。 Buildah は単純な fork-exec モデルに従っており、デーモンとしては実行されませんが、golang の包括的な API に基づいており、他のツールにベンダー化できます。
Podman は、プルやタグ付けなど、OCI イメージの保守と変更に役立つすべてのコマンドと機能を専門としています。 また、それらのイメージから作成されたコンテナーを作成、実行、保守することもできます。 Dockerfile 経由でコンテナ イメージを構築するために、Podman は Buildah の golang API を使用し、Buildah から独立してインストールできます。
Podman と Buildah の主な違いは、コンテナーの概念です。 Podman を使用すると、ユーザーは、コンテナーの目的を長く維持できる「従来のコンテナー」を作成できます。 一方、Buildah コンテナーは実際には、コンテンツをコンテナー イメージに追加し直すために作成されるだけです。 これを簡単に考えると、 buildah run
コマンドは Dockerfile で RUN コマンドをエミュレートし、 podman run
コマンドは機能的にdocker run
コマンドをエミュレートします。 このことと、その基礎となるストレージの違いにより、Buildah 内から Podman コンテナーを表示することはできず、その逆も同様です。
つまり、Buildah は OCI イメージを作成する効率的な方法であり、Podman を使用すると、使い慣れたコンテナ cli コマンドを使用して本番環境でこれらのイメージとコンテナを管理および保守できます。 詳細については、「コンテナ ツール ガイド」を参照してください。
$ podman run quay.io/podman/hello Trying to pull quay.io/podman/hello:latest... Getting image source signatures Copying blob a6b3126f3807 done Copying config 25c667d086 done Writing manifest to image destination Storing signatures !... Hello Podman World ...! .--"--. / - - / (O) (O) ~~~| -=(,Y,)=- | .---. /` |~~ ~/ o o ~~~~.----. ~~ | =(X)= |~ / (O (O) ~~~~~~~ ~| =(Y_)=- | ~~~~ ~~~| U |~~ Project: https://github.com/containers/podman Website: https://podman.io Documents: https://docs.podman.io Twitter: @Podman_io