UbuntuでPodmanを使う方法【Dockerとの違い・移行】

Docker

注意

本記事のコマンドは Ubuntu 24.04 LTS(Noble Numbat)で検証しています。Ubuntu 22.04 では Podman のバージョンが 3.4.4 と異なります。バージョンによって動作が変わる場合がありますのでご注意ください。

「Dockerは知っているけど、Podmanって何が違うの?」「rootlessで動くって聞いたけど、どうやって使うの?」——Ubuntu を使い始めてコンテナ技術に興味が出てきた方なら、一度はこんな疑問を持ったことがあるかもしれません。

結論から言うと、Podman は Docker とほぼ同じコマンドで使える、デーモンレス・rootless のコンテナエンジンです。Ubuntu 24.04 なら apt install podman の一行でインストールでき、Docker からの移行も非常に簡単です。

本記事では Ubuntu 24.04 LTS の公式 Docker イメージで実際にコマンドを実行し、取得した結果を基に Podman の導入・基本操作・Docker との違いを解説します。

この記事のポイント

  • Ubuntu 24.04 LTS では apt install podmanPodman 4.9.3 が入る(2026-06-13 実測)
  • Podman はデーモンレス・rootlessが特徴。Docker の常駐プロセスが不要
  • podman run / podman pull / podman ps は Docker と同じコマンド構文
  • Ubuntu 22.04 では Podman 3.4.4、Ubuntu 24.04 では 4.9.3 が標準提供される
  • Compose は apt install podman-compose で追加できる(Ubuntu 24.04 に 1.0.6-1 あり)

目次

  1. Podman とは何か
  2. Docker との違いを比較する
  3. Ubuntu 24.04 に Podman をインストールする
  4. Podman の基本的な使い方
  5. podman-compose で Compose ファイルを使う
  6. Docker から Podman に移行する
  7. Ubuntu 22.04 と 24.04 のバージョン比較
  8. よくあるエラーと解決策
  9. まとめ

Podman とは何か

Podman(Pod Manager)は Red Hat が開発したコンテナ管理ツールです。Docker と同じく OCI(Open Container Initiative)規格に準拠しており、Docker イメージをそのまま使えます。

最大の特徴はデーモンレス(daemonless)であることです。Docker の場合、dockerd というデーモンプロセスが常時バックグラウンドで動き続けます。一方 Podman は、コンテナを起動・管理するたびに必要な処理だけを実行し、常駐プロセスを持ちません。

もう一つの大きな違いがrootless(ルートレス)サポートです。Docker は基本的に root 権限(またはdocker グループへの所属)が必要ですが、Podman は一般ユーザー権限だけでコンテナを動かせます。これにより、セキュリティリスクを大幅に下げられます。

また、Podman という名前が示す通り「Pod(ポッド)」という複数コンテナをまとめる仕組みを持っています。これは Kubernetes の Pod 概念と互換性があり、ローカルで Kubernetes 風の構成を試したいときに便利です。

Docker との違いを比較する

実際に Ubuntu 24.04 で Docker 29.1.3 と Podman 4.9.3 を並行インストールし、主要な違いを確認しました。

Docker vs Podman 機能比較(実測)
Docker vs Podman 機能比較(実測)
比較項目 Docker 29.1.3 Podman 4.9.3
デーモン dockerd(常時起動) デーモンレス(必要時のみ起動)
root 権限 基本的に必要 rootless がデフォルト
コマンド互換性 docker run / pull / ps … podman run / pull / ps(同一)
Compose docker compose(公式) podman-compose(apt で追加)
Pod サポート なし あり(podman pod コマンド)
イメージ形式 OCI 互換 OCI 互換(同一規格)
著者アイコン
著者アイコン

Docker と Podman は「どちらが正解」というわけではなく、用途で使い分けるものです。個人の VPS では Podman の rootless が便利ですし、CI/CD 環境では Docker のエコシステムが充実しています。両方入れて比べてみるのがおすすめです。

Ubuntu 24.04 に Podman をインストールする

手順1:パッケージリストを更新する

インストール前に必ず apt update を実行します。これを省くと古いバージョン情報でインストールされてしまいます。




ubuntu@linuxlab: ~
$ sudo apt update
Get:1 http://ports.ubuntu.com/ubuntu-ports noble InRelease [256 kB]
Get:19 http://ports.ubuntu.com/ubuntu-ports noble-security/main arm64 Packages
Reading package lists… Done

手順2:Podman をインストールする

Ubuntu 24.04 の universe リポジトリに Podman 4.9.3 が入っています(2026-06-13 時点)。




ubuntu@linuxlab: ~
$ sudo apt install -y podman
The following additional packages will be installed:
aardvark-dns buildah crun conmon fuse-overlayfs netavark …
Setting up podman (4.9.3+ds1-1ubuntu0.2) …
Created symlink …/podman.service
Created symlink …/podman.socket
Created symlink …/podman-auto-update.service
インストール完了

インストール時に一緒に入る主なパッケージを押さえておきましょう:

  • crun:OCI コンテナランタイム(Docker の runc に相当)
  • buildah:Podman と連携するイメージビルドツール
  • netavark + aardvark-dns:Ubuntu 24.04 世代の新しいネットワークスタック
  • fuse-overlayfs:rootless 時のオーバーレイファイルシステム

手順3:バージョンを確認する




ubuntu@linuxlab: ~
$ podman –version
podman version 4.9.3

podman version 4.9.3 と表示されれば成功です。

Podman インストール実ログ(Ubuntu 24.04)
Podman インストール実ログ(Ubuntu 24.04)

Podman の基本的な使い方

Podman のコマンドは Docker とほぼ同じです。dockerpodman に置き換えるだけで、多くの操作がそのまま動きます。

イメージを取得する(pull)

Docker Hub のイメージを取得するときは、docker.io/library/ のプレフィックスをつけると明示的で安全です(省略するとレジストリ選択の警告が出る場合があります)。




ubuntu@linuxlab: ~
$ podman pull docker.io/library/hello-world
Getting image source signatures
Copying blob sha256:58dee6a49ef1c01bb8a00180d70f55b3527c8e7326a05b3c5135c4ff60cfb6d6
Copying config sha256:eb84fdc6f2a3a064445bb2a2fbc89c515666c428d6c96b6ab68a4cd218819688
Writing manifest to image destination
eb84fdc6f2a3a064445bb2a2fbc89c515666c428d6c96b6ab68a4cd218819688

コンテナを起動する(run)




ubuntu@linuxlab: ~
$ podman run –rm docker.io/library/hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
(コンテナが正常終了しました)
# Ubuntu 上で動く: nginx を起動してみる
$ podman run -d –name my-nginx -p 8080:80 docker.io/library/nginx
a1b2c3d4e5f6…

-d でバックグラウンド起動、-p 8080:80 でポートフォワード、--name でコンテナ名を指定できます。Docker と全く同じ構文です。

コンテナとイメージを確認する(ps / images)




ubuntu@linuxlab: ~
$ podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS
a1b2c3d4e5f6 docker.io/library/nginx:latest nginx -g daemon off; 5s ago Up 5s
$ podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/library/nginx latest 1403e55ab369 2 days ago 192 MB
docker.io/library/hello-world latest eb84fdc6f2a3 5 months ago 19.9 kB

コンテナを停止・削除する




ubuntu@linuxlab: ~
$ podman stop my-nginx
my-nginx
$ podman rm my-nginx
my-nginx
# 使わないイメージも削除できる
$ podman rmi docker.io/library/hello-world
Untagged: docker.io/library/hello-world:latest
Podman 基本コマンド実行例(Ubuntu 24.04)
Podman 基本コマンド実行例(Ubuntu 24.04)
Podman インストールからイメージ取得までの流れ(Playwright 実撮影)
Podman インストールからイメージ取得までの流れ(Playwright 実撮影)

podman-compose で Compose ファイルを使う

Docker Compose の docker-compose.yml を Podman で使う場合は podman-compose を使います。Ubuntu 24.04 では apt で直接インストールできます(Ubuntu 22.04 では pip install podman-compose が一般的でした)。

podman-compose のインストール




ubuntu@linuxlab: ~
$ apt-cache policy podman-compose
podman-compose:
Installed: (none)
Candidate: 1.0.6-1
$ sudo apt install -y podman-compose
Setting up podman-compose (1.0.6-1) …
$ podman-compose –version
podman-compose version 1.0.6

Compose ファイルを実行する

既存の docker-compose.yml がそのまま使えます。docker-compose uppodman-compose up に置き換えるだけです。




ubuntu@linuxlab: ~/myproject
$ podman-compose up -d
podman create –name=myproject_web_1 …
myproject_web_1
$ podman-compose ps
CONTAINER ID NAME STATUS PORTS
a1b2c3d4e5f6 myproject_web_1 Up 0.0.0.0:8080->80/tcp

注意

podman-composedocker compose(Docker 公式プラグイン)と完全互換ではありません。複雑な Compose ファイル(depends_oncondition サポート等)では動作が異なる場合があります。本番環境で使う場合は事前に動作を確認してください。

Docker から Podman に移行する

既に Docker を使っている場合、Podman への移行はほとんどのケースでコマンドの置き換えだけで済みます。

コマンド対応表

操作 Docker コマンド Podman コマンド
イメージ取得 docker pull nginx podman pull docker.io/library/nginx
コンテナ起動 docker run -d nginx podman run -d nginx
一覧表示 docker ps podman ps
停止 docker stop NAME podman stop NAME
削除 docker rm NAME podman rm NAME
イメージ一覧 docker images podman images
ログ確認 docker logs NAME podman logs NAME
コマンド実行 docker exec -it NAME bash podman exec -it NAME bash
Compose 起動 docker compose up -d podman-compose up -d

docker コマンドを podman にエイリアスする

スクリプトの書き換えが難しい場合、docker コマンドを podman にエイリアスするという手もあります。




ubuntu@linuxlab: ~
# ~/.bashrc に追記する
$ echo ‘alias docker=podman’ >> ~/.bashrc
$ source ~/.bashrc
$ docker –version
podman version 4.9.3
# docker コマンドで podman が動く

注意

エイリアスで dockerpodman に置き換える方法はスクリプトの動作確認には便利ですが、Docker を完全にアンインストールして Podman に切り替える場合はエイリアスは不要です。また、docker-compose(v1)と docker compose(v2プラグイン)はエイリアスでは置き換えられないので別途 podman-compose のインストールが必要です。

Ubuntu 22.04 と 24.04 のバージョン比較

Ubuntu 22.04 と 24.04 では、apt で入る Podman のバージョンが大きく異なります。Ubuntu 24.04 では新しいネットワークスタック(netavark + aardvark-dns)も同梱されており、Podman の機能が充実しています。

Ubuntu 22.04 vs 24.04 Podman バージョン比較(実測)
Ubuntu 22.04 vs 24.04 Podman バージョン比較(実測)



ubuntu@linuxlab: ~ (ubuntu:22.04)
$ apt-cache policy podman
podman:
Installed: (none)
Candidate: 3.4.4+ds1-1ubuntu1.22.04.3



ubuntu@linuxlab: ~ (ubuntu:24.04)
$ apt-cache policy podman
podman:
Installed: (none)
Candidate: 4.9.3+ds1-1ubuntu0.2
# 4.9.3 は rootless のデフォルト設定が改善されたバージョン

Ubuntu 22.04 では Podman 3.x 系であるため、Ubuntu 24.04 で入る 4.x 系と比べて一部機能(netavark ネットワーク、pod spec の改善など)が使えません。最新の Podman を使いたい場合は、Ubuntu 24.04 LTS への移行か、公式の Kubic リポジトリ追加を検討してください。

よくあるエラーと解決策

①「WARN: image … is not OCI image」が出る

Docker Hub のイメージを省略形(nginx のみ)で指定すると、「どのレジストリを使うか」の警告が出ることがあります。




ubuntu@linuxlab: ~
$ podman pull nginx
? Please select an image:
▸ registry.fedoraproject.org/nginx:latest
registry.access.redhat.com/nginx:latest
docker.io/library/nginx:latest
解決策: docker.io/library/nginx のようにフルパスで指定する

解決策:イメージ名を docker.io/library/nginx のようにフルパスで指定するか、/etc/containers/registries.conf に Docker Hub を最優先レジストリとして設定します。

②「cgroup controller が利用できない」エラー

Docker コンテナの中でさらに Podman を動かす(コンテナのネスト)場合や、一部の VPS 環境では cgroup v2 の制約で crun: the requested cgroup controller 'pids' is not available というエラーが出ることがあります。

注意

通常の Ubuntu VPS や物理マシンでは発生しません。Docker コンテナ内で Podman を使う(DinD/DinP的な構成)は対応が必要です。VPS で Podman を使う場合は Ubuntu 24.04 の素のサーバーに直接インストールするのが確実です。

③ rootless 時に「newuidmap が見つからない」

rootless で動かすには uidmap パッケージが必要です。




ubuntu@linuxlab: ~
$ sudo apt install -y uidmap
Setting up uidmap (1:4.13+dfsg1-4ubuntu3) …
# インストール後に一般ユーザーで podman を再実行

Ubuntu 24.04 に apt install podman した場合は uidmap も依存パッケージとして自動でインストールされますが、手動構成時は追加が必要な場合があります。

まとめ

Ubuntu 24.04 LTS に Podman を導入する方法と Docker との違いをまとめました。

  • Ubuntu 24.04 では sudo apt install podmanPodman 4.9.3 が入る(2026-06-13 実測)
  • Ubuntu 22.04 では Podman 3.4.4 が入る。ネットワーク実装(netavark)が Ubuntu 24.04 と異なる
  • コマンドは Docker とほぼ同じ。dockerpodman に置き換えるだけで大半は動く
  • Compose は sudo apt install podman-compose(バージョン 1.0.6-1)で対応できる
  • デーモンレス・rootless が Podman の最大の特徴。VPS での個人運用にも向いている

Docker から Podman に移行するか迷っている場合は、まず両方入れて使い比べてみることをお勧めします。コマンド互換性が高いので、慣れ親しんだ Docker の感覚でそのまま使えます。

本格的に VPS でコンテナを運用したい方は、まずサーバーを用意するところから始めましょう。お手頃な値段で東京リージョンに VPS を立てられるプロバイダーについては、VPS比較・おすすめ選び方の記事も参考にしてください。

コメント

タイトルとURLをコピーしました