コンテナ オーケストレーション ツールは、今日最も重要な Web 開発テクノロジーの 1 つとして、この業界のリーダーの地位を競う多くの強力なプレーヤーを引き付けています。 Podman は、Kubernetes のようなアプローチを使用してコンテナを構築、管理、実行するように設計された Red Hat 製品であり、主流のコンテナの信頼できる代替手段として開発者の注目を集めています。 RHEL 8 以降、Red Hat は Docker Daemon を CRI-O/Podman に置き換えました。 Red Hat はなぜ Docker Daemon を廃止したいのでしょうか?これは、Docker を Docker Daemon で実行すると次の問題が発生するためです。
Podman は、デーモンを介さずにイメージ レジストリ、イメージ、コンテナーと直接対話することで上記の問題を解決します。さらに、Podman を使用すると、ユーザーは完全なルート権限なしでコンテナを実行できます。 さらに、Docker と互換性のある手順も提供されているため、ユーザーは元の Docker 手順から Podman に簡単に切り替えることができます。 標準的なコンテナ化ツールである Podman と Docker は、約 10 年前から存在しています。この記事では、これら 2 つのテクノロジを比較します。これらは異なりますが、一緒に使用するのに非常に適しています。 1. Docker とは何ですか?Docker は標準的なコンテナ管理テクノロジーです。 Docker は業界で非常に重要なので、ほとんどの人はコンテナについて考えるとき、Docker を思い浮かべます。 Docker はコンテナ オーケストレーションの世界におけるスイス アーミー ナイフであり、他の選択肢が登場するずっと前から多くの機能を提供してきました。コンテナ管理の複雑さが増すにつれて、コンテナ管理も、開発者のあらゆるニーズを満たすことができるスタンドアロンの自己完結型ツールへと進化する必要があります。 非常に短い期間で、Docker はオールインワン ソリューションの重要なツールの 1 つになりました。その 1 つが Docker Swarm です。これは Docker エンジンをクラスタ化してスケジュール設定したり、コンテナのグループを作成および管理したりできる Docker ネイティブ ソリューションです。 Docker の多くの補助ツールは、負荷分散からネットワークまで、コンテナ オーケストレーションに関連するすべてのタスクを処理するため、業界の技術リファレンスとしてだけでなく、業界の第一の選択肢となっています。 Docker は強力なシステムですが、この自己完結型モデルには欠点もあります。開発のあらゆる段階でコンテナを作成して実行することは可能ですが、他のツールを Docker と統合するのは困難です。 近年、Docker は、特定のタスク向けの他の多くの専用ツールとともに、多くの開発者にとって出発点となり、一部のタスクを他のより軽量なプラットフォームやツールにオフロードするようになりました。 2. Podman とは何ですか?Podman は、Open Container Initiative (OCI) 標準に従ってコンテナーと Pod を開発、管理、実行するように設計された、オープン ソースの Linux ネイティブ ツールです。 Podman は、RedHat によって開発されたユーザーフレンドリーなコンテナ スケジューラであり、RedHat 8 および CentOS 8 のデフォルトのコンテナ エンジンです。 これは、コンテナ化されたプロセスのさまざまなタスクを処理するように設計されたコマンド セットのコレクションであり、モジュラー フレームワークとして機能します。ツールセットには以下が含まれます。
これらのツールは Docker などの OCI 互換のコンテナ エンジンでも動作するため、Podman への移行や既存の Docker インストールでの使用が容易になります。 Podman は Kubernetes で使用できますか?答えは「はい」です。実際、Kubernetes と Podman はいくつかの点で似ています。 Podman はコンテナに対して異なる方法論を採用しています。その名前が示すように、Podman は連携して動作するコンテナの「Pod」を作成できます。これは Kubernetes の Pod に似た機能です。ポッドは、共通の名前空間内の単位としてコンテナを管理します。 主な利点は、開発者がリソースを共有し、1 つの Pod 内の同じアプリケーションに異なるコンテナを使用できることです。1 つのコンテナはフロントエンド用、もう 1 つはバックエンド用、そしてデータベース用です。 Pod 構成を Kubernetes 互換の YAML ファイルにエクスポートして Kubernetes クラスターに適用すると、コンテナをより早く本番環境に導入できるようになります。 Podman のもう一つの特徴は、デーモンレスであることです。デーモンは、ユーザー インターフェイスなしでバックグラウンドで実行され、サービス、プロセス、および要求を処理するプログラムです。 Podman は、実際にはデーモンに依存せず、代わりにコンテナと Pod を子プロセスとして起動するという点で、ユニークなコンテナ エンジンです。 「なぜ Podman を使う必要があるのか?」と疑問に思うかもしれません。開発および管理ツールとしての Podman には独自の強みがあり、適切な環境では Docker に代わる実行可能で興味深い選択肢となります。また、Docker と互換性のある CLI インターフェイスをサポートしているため、Docker と並行して作業するための強力な補完機能でもあります。 3. PodmanとDockerの違いPodman と Docker は多くの機能を共有していますが、根本的な違いもいくつかあります。良い技術や悪い技術というものはありませんが、特定のシナリオにどの技術がより適しているかに焦点が当てられます。 Podman は Linux カーネルと対話し、デーモンではなく runC コンテナ ランタイム プロセスを通じてコンテナを管理します。 Buildah ユーティリティは、コンテナ イメージ構築ツールとして Docker ビルドの代わりに使用され、Docker push は、レジストリとコンテナ エンジン間でコンテナ イメージを移動するために Skopeo に置き換えられます。 (1)建築 Docker は、バックグラウンドで実行されるプログラムであるデーモンを使用して、イメージを作成し、コンテナを実行します。 Podman はデーモンレス アーキテクチャです。つまり、コンテナを起動したユーザーの下でコンテナを実行します。 Docker にはデーモンによって制御されるクライアント サーバー論理アーキテクチャがあります。しかし、Podman ではそのようなデーモンは必要ありません。 (2)ルート権限 Podman にはアクティビティを管理するデーモンがないため、コンテナーに root 権限を割り当てる必要はありません。 Docker は最近、デーモン構成にルートレス モードを追加しましたが、このアプローチを最初に使用し、基本機能として推進したのは Podman でした。理由は次の通りです。 (3)セキュリティ Podman は Docker よりも安全ですか? Podman を使用すると、コンテナはルートレス権限を使用できます。ルートレス コンテナは、ルート権限を持つコンテナよりも安全であると考えられています。 Docker ではデーモンにルート権限があるため、攻撃者にとって主要な侵入ポイントとなります。 Podman のコンテナーにはデフォルトではルート アクセス権がないため、ルート レベルとルートレス レベルの間に自然な障壁が追加され、セキュリティが向上します。ただし、Podman はルート コンテナーとルートレス コンテナーの両方を同時に実行できます。 (4)システムド デーモンがなければ、Podman にはサービスを管理し、バックグラウンドで実行されているコンテナをサポートする別のツールが必要になります。 Systemd は、既存のコンテナの制御ユニットを作成したり、新しいコンテナを生成するために使用されます。 Systemd は Podman と統合することもでき、変更を加えることなく、デフォルトで Systemd が有効になっているコンテナを実行できます。 Systemd を使用すると、ベンダーはアプリケーションをコンテナとしてパッケージ化し、インストール、実行、管理することができます。これは、今日のほとんどのアプリケーションがパッケージ化されて配信される方法と同じです。 (5)イメージを構築する 自己完結型のツールとして、Docker は独自のコンテナ イメージを構築できます。 Podman には、Buildah と呼ばれる別のツールの支援が必要です。このツールは、コンテナの構築ではなく、イメージの構築用に設計されているという Podman の特殊性を完全に反映しています。 (6) ドッカースウォーム Podman は Docker Swarm をサポートしていないため、Docker Swarm コマンドを使用するとエラーが発生するため、一部のプロジェクトが除外される可能性があります。しかし、最近、Podman は Docker Compose のサポートを追加し、Swarm との互換性を実現したため、この制限は克服されました。もちろん、Docker はネイティブな特性により Swarm とうまく統合されます。 (7)オールインワンとモジュラー おそらくこれが 2 つのテクノロジーの主な違いです。Docker は、すべてのコンテナ化タスクを完全なサイクルで処理するスタンドアロンの強力なツールであり、長所と短所の両方を備えています。 Podman はモジュール式のアプローチを採用しており、特定のタスクを実行するために特殊なツールに依存しています。 4. Podman と Docker: 連携できますか?Dockerに代わる最良かつ最も簡単な代替手段として、ユーザーは問題なくDockerをPodmanにエイリアス(エイリアスDocker = Podman)することができます。このデモ[1]に示されているように、Podmanはコンテナ化タスクのための非常に強力なツールです。 Podman は Docker の代替になりますか? プロジェクトをゼロから始める場合、Podman はコンテナ化テクノロジーの主要な選択肢となります。プロジェクトが進行中で、Docker がすでに使用されている場合は、ケースバイケースの分析が必要であり、実際の状況は必ずしも変更する価値があるとは限りません。さらに、Linux ネイティブ アプリケーションであるため、関連する開発者には Linux 関連のスキルが必要です。 開発者は開発フェーズでは Docker を活用し、その後、ランタイム環境としてプロジェクトを Podman にプッシュすることで、2 つのツールを組み合わせ、Podman が提供するより強力なセキュリティのメリットを享受できます。これらはすべて OCI に準拠しているため、互換性の問題はありません。 Docker と Podman は共存できますか?はい、それは素晴らしいことです。多くの開発者は、より安全で効率的、かつ俊敏なフレームワークを作成するために、Docker と Podman を併用しています。これらには多くの共通点があり、Docker から Podman への移行、または 2 つの組み合わせはシームレスに行えます。 |
>>: 2022 年に予測される VMware の 5 つのトレンド
アンカー テキスト (一般にアンカー テキスト リンクとも呼ばれます) もリンクの一種です。ハイパー...
ミルクティーを諦め、年末のKPIのプレッシャーに直面する働く美人にとって、ミルクの癒しとリフレッシュ...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています科学技術の...
2020 年を振り返ると、この流行はクラウド コンピューティングの発展に大きな影響を与えました。調査...
微博の情報拡散能力は、多くのプロのマーケターを驚かせました。少し前、微博は趙震をめぐる論争を煽る役割...
編纂者:Qianshan制作 | 51CTO テクノロジースタック (WeChat ID: blog...
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス製品マーケティングにWe...
技術が急速に変化しているこの時代では、新しい製品が古い製品に取って代わる例が多くあり、以前人気があっ...
[編集者注] この記事は@elya妞の個人ブログから転載したものです。より多くの設計者がモバイル ア...
今は情報爆発の時代であり、コンテンツこそが王様であるというのは不変のテーマです。 Weibo マーケ...
近年、デジタル技術の推進により、ますます多くの中国企業が海外事業拡大のペースを加速させています。中国...
Kubernetes 内のさまざまなリソース オブジェクト (以下、「K8s」と呼びます) のデータ...
テンセントテクノロジーニュース(劉学通)北京時間9月7日、海外メディアの報道によると、テレジオグラフ...
2018年、国際的な高級ブランドはソーシャルネットワーク上でより積極的になり、WeChat Mome...
私の意見では、velocihost は優れたパフォーマンスを備えた VPS プロバイダーです。この ...