Podmanとは何ですか?Dockerとの違いは何ですか?
PodmanはOCIコンテナ互換のコンテナエンジンであり、RedHat Linuxの一部でもありますが、他のLinuxディストリビューションにもインストールできます。
OCIに準拠しているため、Podmanは、よく知られているDockerランタイムのドロップイン代替品として使用できます。ほとんどのDockerコマンドは、Podmanコマンドに直接変換できます。
ランタイムとは何ですか?
多くの人にとって、Container EngineはDockerですが、これは現時点ではContainer Engineの世界を表すものではありませんが、Podmanのような多くのContainerEngineがあります。
その結果、PodmanとDockerには基本的な機能があります。それぞれが、もう一方がコンテナーを操作するために使用できるイメージを生成します。次に、2つのランタイムが、基本のコンテナー化機能に独自の特殊性を追加します。
Podmanをインストールする
Red Hat Enterprise Linux 8を使用している場合、Podmanはローカルリポジトリにあり、yumを使用するだけでインストールできます。
yum -y install podman
他のほとんどのLinuxディストリビューションでは、デフォルトのリポジトリにPodmanが含まれています
コンテナと画像の操作方法 ?
Podmanは、
などの実行コマンドでDockerといくつかの類似点があります。1-画像をプルする方法
podman pull my-image:latest
2-イメージの実行方法
podman run my-image:latest --name my-container
3-作成および実行中のコンテナのリスト
podman ps
4-コンテナを削除する方法
podman rm my-container
ポッドマンとDockerの違い
Dockerはコンテナー管理テクノロジーです。 Podmanはコンテナテクノロジーでもあります。コンテナイメージを構築し、それらのイメージをリポジトリに保存するために使用できます。 DockerまたはPodmanを使用して、レジストリからコンテナイメージをプルし、ターゲット環境で実行することもできます
ただし、テクノロジーには違いがあります。まず、Dockerには基盤となるデーモンがありますが、Podmanはわずかに異なるテクノロジーを使用してコンテナーを作成します。次に、Podmanは、その名前が示すように、ユーザーがポッドを作成できるようにします。ポッドは、共通の組織名でコンテナをグループ化する方法です。 Dockerはポッドをサポートしていません。他にも微妙な違いがありますが、大まかに言えば、これら2つの違いが最も顕著です
1-ルートレスコンテナ
ルートレスコンテナとは、権限のないユーザーがコンテナを作成、実行、または管理する機能を指します。
このコンテキストでの「非特権ユーザー」とは、管理者権限を持たないユーザーを指します
slirp4netnsをインストールします:
yum install slirp4netns
ユーザースコープのネットワーク名前空間の数を構成します:
echo "user.max_user_namespaces=28633" > /etc/sysctl.d/userns.conf
sysctl -p /etc/sysctl.d/userns.conf
これで、通常のユーザーとしてルートレスコンテナを実行できます。ユーザーとしてサーバーに接続するだけです。
podmanを実行して新しいコンテナを開始すると、rootではなくユーザーアカウントのUIDで作成されます
ポッド
ポッド は、kubernetesポッドのように見える、作成および管理できるコンピューティングの最小のデプロイ可能なユニットです。
ポッド作成:
podman pod create --name my-pod
ポッドにコンテナを追加します:
podman run --pod my-pod --name image-1 my-image:latest
ポッド内のコンテナを管理できます:
podman kill my-pod # kill all containers
podman restart my-pod # restart all containers
podman stop my-pod #stop all containers
結論
結論として、podmanはdockerのようなコンテナエンジンであり、イメージをプルする方法、イメージを実行する方法など、多くの類似点があります。ただし、ルートレスコンテナやポッドなど多くの違いがあります