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 Enterprise Linux 8 | Red Hat Customer Portal
本ガイドでは、podman、buildah、skopeo、runc などのコマンドラインツールを使用して、RHEL 8 システムで Linux コンテナーを使用する方法を説明します。

Dockerの削除については、こんなことが書かれています。要するにRHEL上でコンテナを動かすときは、OpenShift前提のはずなので、機能豊富すぎるしセキュリティ微妙(RH社目線)な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コマンドの以下のオプションは対応していないそうですね。

Red Hat Customer Portal - Access to 24x7 support and knowledge

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

Podmanのその他の特徴は、以下の記事がとてもわかりやすいです。特に重要そうなのは、「(4) デーモンレスのコンテナエンジン」や「(5)コンテナはルートレスモードで実行可能」でしょうか。

Dockerの置き換えを目指す ルートレス&デーモンレスの Podman 入門 - Qiita
OpenShiftのマニュアルには、dockerコマンドと共に podmanコマンド が利用できるとされている。OpenShift を触る様になるまで、Podmanの存在を知らなかったので、調べたことをメモとして残しておく。 Po...

(1) Docker互換のコマンドラインフロントエンドを提供
(2) オープンソースプロジェクトであり、GitHub でコードが公開されている
(3) OCIに準拠するコンテナイメージの開発、管理、および、コンテナとして実行
(4) デーモンレスのコンテナエンジン
(5) コンテナはルートレスモードで実行可能
(6) ほとんどのLinuxプラットフォームで利用できる
(7) Kubernetes の Pod を扱える

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のアーキテクチャ

アザラシ?モグラ?

ダグトリオのせいでモグラにしか見えなかったですか、Kubernetesの航海というコンセプトからいくとアザラシかな?水面みたいなのもあるし。

少し使ってみる

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



RHEL8/CentOS8のVM用意

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

Podmanのインストール

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

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

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

さいごに

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

ただ、コンテナ仮想化がここまで普及したのはDockerの功績だと思うし、クジラのロゴも可愛くて好きなので、なんとか頑張って欲しいと言う気持ちもあります。

この記事を書いた後に、以下の翻訳記事を書きました。元記事がたいへん素晴らしいので、ぜひご覧ください。

以上.

コメント