Red Hatでソリューションアーキテクトをしている田中司恩です。RHEL 8.4 Betaが公開され、ようやくRHEL上でPodman v3が使用可能になりました。今回はRHEL 8.4 BetaとPodman v3の新機能についてご紹介します。
RHEL 8.4 Beta
Red Hat Enterprise Linux(RHEL)の最新版 RHEL 8.4のベータ版が公開され利用可能になりました(↓ブログ記事)。
RHEL 8.4 Betaを使用するには有効なサブスクリプションを保有している他にも方法があります。 Red Hat Developer Program への参加もその一つで、RHEL Betaが使用可能です。まだアカウントをお持ちでない場合はこの機会に登録してみてください。Red Hat Developer Programについては下記記事に解説があります。
RHEL 8.4 Betaの入手
下記のページの「GET STARTED」を押すとRed Hat IDでのログイン画面に遷移します。
ログインが完了すると下記のような表示が出て、Red Hat IDに紐づくメールアドレスにメールが届けば準備完了です。
あとはRed Hat Customer Portalのダウンロードページより、Red Hat Enterprise Linux for x86_64 Beta を選択してイメージを入手してください。
RHEL 8.4 Beta ドキュメント
8.4 Beta としてすでにドキュメントも公開されています(英語版のみ)。
Product Documentation for Red Hat Enterprise Linux 8 | Red Hat Customer Portal
追加機能や変更点はリリースノートにまとまっていますので、詳細はそちらをご確認ください。
container-tools:3.0 モジュールストリームの追加
いろいろ新機能の追加はあるのですが、個人的なイチオシはこれ、container-tools:3.0
の追加です!これによりRHEL上でPodman v3をパッケージで導入して使用可能になったことは大きいです。さらにリリースノートの一番最後にあるあたり、ラスボス感があってとても良いです。
RHEL 8.4 Betaに追加された container-tools:3.0 のSummary
# cat /etc/redhat-release Red Hat Enterprise Linux release 8.4 Beta (Ootpa) # dnf module info container-tools:3.0 |grep Summary Summary : Stable versions of podman 3.0, buildah 1.19, skopeo 1.2, runc, conmon, etc as well as dependencies such as container-selinux built and tested together, and supported as documented on the Application Stream lifecycle page.
container-toolsのモジュールリスト
# dnf module list container-tools Red Hat Enterprise Linux 8 for x86_64 - AppStream Beta (RPMs) Name Stream Profiles Summary container-tools rhel8 [d][e] common [ Most recent (rolling) versions of podman, buildah, skopeo, runc, conmon, runc, conmon, CRIU, Udica, etc as well as dependencies such as container-selinux built and te d] sted together, and updated as frequently as every 12 weeks. container-tools 1.0 common [ Stable versions of podman 1.0, buildah 1.5, skopeo 0.1, runc, conmon, CRIU, Udica, etc as well as dependencies such as container-selinux built and tested together, an d] d supported for 24 months. container-tools 2.0 common [ Stable versions of podman 1.6, buildah 1.11, skopeo 0.1, runc, conmon, etc as well as dependencies such as container-selinux built and tested together, and supported d] as documented on the Application Stream lifecycle page. container-tools 3.0 common [ Stable versions of podman 3.0, buildah 1.19, skopeo 1.2, runc, conmon, etc as well as dependencies such as container-selinux built and tested together, and supported d] as documented on the Application Stream lifecycle page.
なお、container-tools:1.0は非推奨となりますのでご注意ください( リリースノートの7.15に記載があります)。
Podman v3
PodmanのOSSコミュニティでは先行して開発が進んでいて、CentOS StreamやFedoraではすでにPodman v3が使用可能でした。
なお、最新版はv3.1.0となっておりGitHubで公開されています(2021/4/2、時点)。
Release v3.1.0 · containers/podman · GitHub
RHEL 8.4 Beta、CentOS Stream 8、Fedora 33、それぞれの現時点でパッケージで導入できるPodmanのバージョンは下記の通りです。(2021/4/2、時点)
RHEL 8.4
# podman version Version: 3.0.2-dev API Version: 3.0.0 Go Version: go1.15.7 Built: Wed Mar 3 00:10:06 2021 OS/Arch: linux/amd64
CentOS Stream 8
# podman version Version: 3.1.0-dev API Version: 3.1.0-dev Go Version: go1.16.1 Built: Sat Mar 27 03:32:03 2021 OS/Arch: linux/amd64
Fedora 33
# podman version Version: 3.0.1 API Version: 3.0.0 Go Version: go1.15.8 Built: Sat Feb 20 01:56:17 2021 OS/Arch: linux/amd64
なお、Fedoraについてはupdates-testing
リポジトリを有効にすることによりv3.1.0の導入が可能です。
# dnf update --refresh --enablerepo=updates-testing podman # podman version Version: 3.1.0 API Version: 3.1.0 Go Version: go1.15.8 Built: Tue Mar 30 22:30:36 2021 OS/Arch: linux/amd64
開発版のバージョンのPodmanの導入方法ついてはPodmanの公式サイトで紹介されています。下記ページを参考にしてください。ソースからビルドする方法についても紹介されています。
docker-composeのサポート
Podman v3は多くの機能が追加され現在も開発が継続中ですが、個人的なイチオシ機能はdoker-compose
のサポートです。
これによりdocker
をインストールすることなく、Podmanとdocker-composeを組み合わせることが可能となりました。
「Podmanでdocker-composeが使えない」ということでPodmanの使用を見送っていた方にはぜひ試して頂きたい新機能です。なお、podman-composeというPodmanを使用してdocker-compose.yml
を実行するスクリプトがありますが、podman-composeは3rdのプロジェクトであり、Podman v3におけるdocker-composeのサポートとは別物です。Podman v3におけるdocker-composのサポートはDocker互換のインターフェースとしてREST APIがサポートされたことにより実現しています。
この機能についてはまた別記事で詳細な解説をしたいと思います。 (参考:AWXをPodman + docker-composeで起動するテストは成功しています。 こちらを参照→AWX on Podman)
cockpit-podman
RHELのWeb管理コンソールcockpit
を使ってPodmanをGUIで操作、管理することができます。RHEL 8.4の新機能というわけではないですが、Podman v3でも利用可能です。
cockpit
のアドオン機能のcockpit-podman
を有効にすることで使用可能となります(RHEL 8.1以降)。
GUI上ではコンテナーの起動停止だけでなく、コンテナーイメージの取得、削除もできます。
cockpit-podmanは以前からあった機能ですが、個人的にもあまり使ってなかったのでCLIと併用して使っていきたいと思います。
まとめ
RHEL 8.4 Betaが公開されましたので合わせて使用可能になったPodman v3についてご紹介しました。RHEL 8.4から正式にPodman v3が搭載されますのでこの機会にいち早くRHEL 8.4とPodman v3に触れてみてはいかがでしょうか。
さらに、記事内で紹介したdocker-composeのサポートは実は奥が深い可能性を秘めています。PodmanはPodman Podとして実行するためのKubernetes YAMLファイルに書き出しに対応しているので、docker-composeのコンテナをPodman Pod、Kubernetes/OpenShiftへと移行するパスが出来上がります。 このように単なるコンテナー実行ツールではないPodmanは要注目です。docker-composeサポートの詳細についてはまた別記事にて紹介いたしますのでお楽しみに。