Podman
Red Hatが開発したオープンソースのコンテナ管理ツール。Dockerと互換のCLIを持ちながら、内部の設計は大きく異なる。 #container #linux
デーモンレス
Docker Engineのような常駐デーモンを持たず、各コマンドが独立したプロセスとしてfork/execされる。デーモンが単一障害点・攻撃対象になりにくい。
rootless対応
root権限なしで一般ユーザーとしてコンテナを起動できる。Dockerも後付けでrootlessモードを持つが、Podmanは標準でこの動作をサポートする。ネットワーク接続はユーザー空間ツールpasta(Podman 5.3以降のデフォルト)が担う。
rootless Podmanが用意するuser namespaceは、Kubernetesのrootless modeでノードコンポーネント一式を非rootで動かす際の土台としても使われる。
Pod単位の管理
Kubernetesの「Pod」と同様に、複数コンテナをまとめて同一のネットワーク名前空間・リソースを共有させる単位として扱える。Dockerには標準でこの概念がなく、Docker Composeが近い役割を担う。
Dockerとの互換性
OCI(Open Containers Initiative)準拠のコンテナ・イメージ仕様に従っており、Dockerイメージともそのまま互換性がある。alias docker=podmanとするだけでDockerコマンドの多くがそのまま使える。
LXC/LXD系との違い
LXC/LXDが「システムコンテナ」(initプロセスから丸ごと1つのOS環境を動かす用途)を志向するのに対し、Podmanは Docker 同様、単一アプリケーションの実行に特化した「アプリケーションコンテナ」を扱う。
関連機能
- podman-auto-update: systemd管理下のコンテナのイメージを自動更新する標準機能。