CentOS 8で、Dockerの代替らしい Podman を少し使ってみる

RHEL
Nishipy
RHEL 8では、コンテナエンジンとしてDockerではなくPodmanがサポートされるらしいので、使ってみました。

はじめに

Podmanを触ってみます。

RHEL 8では、Dockerがサポート対象外に

RHEL(Red Hat Enterprise Linux)のドキュメントをみると、RHEL 8(正確にはRHEL 7.6以降)にはDockerが含まれず、サポートの対象からも外れたらしい。

コンテナーの構築、実行、および管理 | Red Hat Product Documentation
コンテナーの構築、実行、および管理 | Red Hat Documentation

Dockerの削除については、こんなことが書かれています。

Docker の削除は、コンテナーがどのように扱われるかに関する Red Hat の考え方の変更を反映しています。
– 企業は、コマンドラインからコンテナーを個別に実行することを重視していません。コンテナーは、主に OpenShift などの、Kubernetes ベースのプラットフォームで使用されます。
– OpenShift を、コンテナーを実行するプロジェクトとして再配置することで、Docker などのコンテナーエンジンが、エンドユーザーによる直接アクセスがない、OpenShift の別のコンポーネントになります。
– OpenShift のコンテナーエンジンは直接使用することを目的としていないため、スタンドアロン機能の多くを実装しなくても、OpenShift が必要とする機能をすべて実行することに焦点をあてる、限定された機能セットで実装できます。

Podman

そのDockerの代わりに入っているのは、OCI(Open Container Initiative)にも準拠したデーモンレスコンテナエンジンであるPodmanというやつらしい。OCIについては、以前の記事で取り上げました。

Podmandockerコマンドと互換性があるらしい。docker-composeに対応した、podman-composeも用意されているようです。一方で、dockerコマンドの以下のオプションは対応していないそうですね。

https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html/building_running_and_managing_containers/container-command-line-reference_building-running-and-managing-containers

podman が対応していない dockerコマンドのオプションには、network、node、plugin (podman はプラグインをサポートしません)、rename (rm および create を使用して podman でコンテナーの名前を変更します)、secret、service、stack、swarm (podman は Docker Swarm をサポートしません) が含まれます。container および imageオプションは、podman で直接使用されるサブコマンドを実行するのに使用します。

Podmanのその他の特徴は、以下の記事がとてもわかりやすいです。

Dockerとのアーキテクチャ比較は、この記事にある図がわかりやすいです。図のようにデーモンの有無が、DockerとPodmanの大きな違いのようですね。

Podman and Buildah for Docker users | Red Hat Developer
What docker users need to know to move from Docker to Podman and Buildah and the advantages of doing so. Developers/operators can easily move to Podman, do all ...(続く)
  • Dockerのアーキテクチャ

  • Podmanのアーキテクチャ

アザラシ?モグラ?

ダグトリオのせいでモグラにしか見えなかったですか、アザラシかな?水面みたいなのもあるし。

少し使ってみる

これまで紹介してきた記事の中に、たくさん実行例が書いてありますが、軽く触ってみます。



RHEL8/CentOS8のVM用意

Macでも試せそうだけどせっかくなので、VMを用意してやりました。最近Dockerばかり使っていたので、Vagrantをひさびさに使います。

Podmanのインストール

これ以降はすべてCentOS8のVM上で作業します。

イメージ取得から、実行まで試す

よくありがちな操作を、よくありがちなNginxで試す。

さいごに

Dockerしか使ったことがなかった私が、Podmanをほんの少し触ってみましたが、(今回試した範囲では)コマンドの互換性のおかげで特に苦労せずに済みました。

ただ、コンテナ仮想化がここまで普及したのはDockerの功績だと思うし、どちらも頑張って欲しいと言う気持ちもあります。

以下の翻訳記事を書きました。元記事がわかりやすいので、よければご覧ください。

以上.

コメント