GNU/Linux >> Linux の 問題 >  >> Panels >> Docker

podmanとdockerの違い。

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のようなコンテナエンジンであり、イメージをプルする方法、イメージを実行する方法など、多くの類似点があります。ただし、ルートレスコンテナやポッドなど多くの違いがあります


Docker
  1. LXC、LXD、Dockerコンテナの違いは何ですか

  2. Linuxコンテナとイメージの違いは何ですか?

  3. [[$ a ==Z*]]と[$a==Z *]の違いは?

  1. EotとEofの違いは?

  2. [0-9]、[[:digit:]]とDの違いは?

  3. DockerイメージのCMDとENTRYPOINTの違い

  1. Dockerとは、DockerとVMの違い、Dockerのインストールとその使用法

  2. Docker コンテナーをバックアップおよび復元する方法

  3. cgroup と名前空間の違い