“脱Docker”として注目の「Podman」と無料の管理ツール「Podman Desktop」とは Dockerとの違いは?:次世代コンテナエンジン「Podman」「Podman Desktop」入門(1)
次世代コンテナエンジンの一つ「Podman」と、そのデスクトップツールである「Podman Desktop」でコンテナ管理を進める方法を解説する本連載。初回は、次世代コンテナ管理ツールとしてPodmanやPodman Desktopが注目される理由や、コンテナエンジンとして有名なDockerとの違いを整理します。
本連載では、次世代コンテナエンジンの一つ「Podman」と、そのデスクトップツールである「Podman Desktop」でコンテナ操作、管理をする方法を解説していきます。初回は、次世代コンテナ管理ツールとしてPodmanやPodman Desktopが注目される理由や、コンテナエンジンとして有名なDockerとの違いを整理します。
Podman&Podman Desktopとは
「Podman」は、Red Hat主導で開発されている、コンテナエンジンの一つです。
コンテナエンジンとして有名な「Docker」と同様の役割を担うものであり、後述しますが、利用できるコマンドもDockerとほぼ変わりません。
「Podman Desktop」は、コンテナ管理を視覚的に操作できるデスクトップツールの一つであり、こちらもRed Hat主導で開発されています。
コンテナ管理デスクトップツールとして有名な「Docker Desktop」と同様の役割を担っています。
PodmanとPodman Desktopが注目を集める理由
PodmanやPodman Desktopが注目を集めるようになった背景として、Docker Desktopを商用利用するために有料サブスクリプションが必要になった点が挙げられるでしょう。
2024年10月現在では個人利用に限って引き続き無償で利用できるものの、従業員数250人以上または年間売上高1000万ドルを超える企業で商用利用するためには有料サブスクリプションが必要となっています。
また「Red Hat Enterprise Linux 8」(RHEL 8)から、Dockerは提供されなくなり、代わりにPodmanが提供されるようになった(RHEL 8のリリースノート)点も大きいでしょう。前述の通り、PodmanはRed Hatの主導で開発が進められているため、RHELで使用する場合、OSと同様にRed Hatからサポートを受けられるという安心感もあるのではないかと思います。
さらに、2024年11月14日にはRed Hatの公式ブログで、PodmanやPodman Desktopをはじめとする、Red Hatが主導で開発しているコンテナツール群をCNCF(Cloud Native Computing Foundation)に寄贈する計画を発表しました(Red Hatのブログ記事)。
この計画がCNCFに受け入れられると、PodmanやPodman Desktopはコンテナ業界で中立な立場を取ることになり、いわゆるベンダーロックインを回避できます。また、CNCFの一部となることで、CNCF傘下の他のコンテナツールとの親和性を増すことが期待でき、コンテナ技術として標準となる可能性が考えられます。
その他、デーモンレスで動作したり、非特権ユーザーで動作させることが念頭に置かれていたりするなど、リソース面、セキュリティ面でも後発の優位性が生かされている点も、注目を集めている理由といえるでしょう。
Podman&Podman DesktopとDocker&Docker Desktopの互換性、違い
Podmanは、Dockerとほぼ同様の役割を担いますが、互換性があるのか、どういった違いがあるのか、やはり気になるところです。ここでは、PodmanとDockerや、Podman DesktopとDocker Desktopを比較して、特に印象的だと筆者が感じた点を紹介します。
「docker」コマンドを「podman」コマンドに置き換えるだけでいつも通り使える
Podmanの公式ドキュメントにも記載されているように、以下のように「podman」コマンドを「docker」コマンドとしてエイリアスの設定をするだけで、Dockerとほぼ同様に扱えます。それぐらい、コマンド体系がほぼ同じです。
$ alias docker=podman
デーモンレス/ルートレス
Dockerはルート権限でデーモンとして実行しますが、Podmanはデーモンとして動作せず、かつルート権限が基本的に不要です。これにより、リソースの使用量とセキュリティの堅牢(けんろう)性がDockerよりも優位です。
なお、デーモンレスであってもOS起動時に特定のコンテナを自動で起動する方法は存在します。
compose機能は標準で存在しない
Dockerを普段から使用している人は、docker-composeコマンドを使って複数のコンテナを同時に起動すると思いますが、Podmanに「compose」という概念は標準で存在しません。別途、「podman-compose」をインストールすれば使えますが、PodmanはコンテナオーケストレーションシステムであるKubernetesへの対応を意識しているため、複数のコンテナをまとめて管理する方法として利用可能な「Pod」を使うことが第一選択になります。
Podman DesktopとDocker Desktopに基本的な機能の差はない
筆者の環境で、簡単に画面で操作できる内容を比較した限りでは、いずれも次のような操作ができることを確認できたので、基本的な機能の差はないと考えられます。
- コンテナの起動や停止などの管理
- イメージのPullなどの管理
- ボリュームの作成や削除などの管理
- イメージの Build
Podman Desktopには、前述したPodの管理機能も存在します。
Podmanのインストール方法
本記事では、「Rocky Linux 9」の使用を前提に、インストール方法や使用方法を紹介します。他のOSを使用する場合、インストール方法が変わることはあるものの、基本的な使用方法はおおむね変わりません。Rocky Linux 9 以外にインストールする場合は、公式ドキュメントもご確認ください。
では、Podmanをインストールしてみましょう。Rocky Linux 9において、Podmanのインストールはとても簡単で、以下のコマンドを実行するだけでインストールが完了します。
$ sudo dnf -y install podman
Podman Desktopのインストール
次に、Podman Desktopをインストールします。PodmanはOSのパッケージマネジャーである「dnf」を使いましたが、Podman Desktopは、Linux向けのデスクトップアプリケーションを、Rocky Linuxや「Ubuntu」など、Linuxディストリビューションの種類にかかわらず、インストールや更新などができる「flatpak」を使ってインストールします。
筆者が確認した環境では、デスクトップ用途で標準的にセットアップしたRocky Linux 9において既にflatpakが使える状態だったため、特別な事前準備は必要ありませんでした。なお、環境によってはflatpakがインストールされていないこともあるかと思いますので、その場合は以下のコマンドを実行してflatpakをインストールしておいてください。
$ sudo dnf -y install flatpak
flatpakが使える状態になったら、以下のコマンドを実行してPodman Desktopをインストールします。
$ flatpak remote-add --if-not-exists --user flathub https://flathub.org/repo/flathub.flatpakrepo $ flatpak install --user flathub io.podman_desktop.PodmanDesktop Looking for matches… Required runtime for io.podman_desktop.PodmanDesktop/x86_64/stable (runtime/org.freedesktop.Platform/x86_64/23.08) found in remote flathub Do you want to install it? [Y/n]: Y io.podman_desktop.PodmanDesktop permissions: ipc network x11 dri file access [1] dbus access [2] [1] /run/docker.sock, home, xdg-run/containers/auth.json, xdg-run/podman:create [2] org.freedesktop.Flatpak, org.freedesktop.Notifications, org.kde.StatusNotifierWatcher ID Branch Op Remote Download 1. [✓] org.freedesktop.Platform.GL.default 23.08 i flathub 163.6 MB / 163.8 MB 2. [✓] org.freedesktop.Platform.GL.default 23.08-extra i flathub 22.6 MB / 163.8 MB 3. [✓] org.freedesktop.Platform.Locale 23.08 i flathub 1.8 MB / 371.6 MB 4. [✓] org.freedesktop.Platform.openh264 2.2.0 i flathub 886.7 kB / 944.3 kB 5. [✓] org.freedesktop.Platform 23.08 i flathub 180.2 MB / 230.9 MB 6. [✓] io.podman_desktop.PodmanDesktop stable i flathub 129.4 MB / 135.9 MB Installation complete.
インストールが完了したら、Podman Desktopを起動してみましょう。初回起動時は次のような画面が表示されます。
このまま「Go to Podman Desktop」ボタンをクリックすると、Podman Desktopが使用可能です。
次回以降の内容について
本連載では、今後、次のような内容を紹介できればと考えています。次回の更新もお楽しみに。
- Podmanにおけるコンテナの操作に関わる一連の操作
- Podman Desktopにおけるコンテナの操作に関わる一連の操作
- PodmanおよびPodman DesktopでのPodの操作
- Podmanを使ってコンテナをサービス化し、OS再起動時にも自動で起動する
筆者紹介
鎌田啓佑
サイオステクノロジー所属。OSS よろず相談室でサポート対応をしているテクニカルサポートエンジニア。Ansibleに出会ってから自動化に取り憑かれ、自身の業務やプライベートであらゆるものの自動化に取り組む。プライベートではJavaでちょっとしたツールの開発を趣味にしている。
Copyright © ITmedia, Inc. All Rights Reserved.