docker に似たソフトウェアがあります: 1. Podman (デーモンのないオープン ソース Linux ネイティブ コンテナ エンジン)、2. LXD (LXC Linux コンテナ専用に設計されたオープン ソース コンテナ エンジン)、3. Buildah、これはコンテナ化されたシステム用に Red Hat によって開発された OCI イメージ構築ツールです; 4. RunC など。
このチュートリアルの動作環境: linux7.3 システム、docker バージョン 20、Dell G3 コンピューター。
docker に似たソフトウェアがあります。
Docker は 2013 年に誕生し、コンテナーの概念を広めたため、ほとんどの人が今でもコンテナーの概念を「Docker コンテナー」と同一視しています。
Docker は、このテクノロジーを最初に採用した企業として、新規参入者が遵守する必要がある標準を設定しました。たとえば、Docker には大規模なシステム イメージ ライブラリがあります。 Docker のベースとなるスタック全体の 1 つ以上の部分を変更しようとする場合、すべての代替案は同じイメージ形式を使用する必要があります。
この期間中に、新しいコンテナ標準が登場し、コンテナ エコシステムがさまざまな方向に発展しました。現在では、Docker 以外にもコンテナを使用する方法がたくさんあります。
#docker に似たコンテナ管理ソフトウェア
#1、Podman
##Podman は、RedHat によって開発されたデーモンレスのオープンソース Linux ネイティブ コンテナ エンジンで、Linux OCI コンテナとコンテナ イメージの構築、実行、管理に使用されます。 Podman は Docker に似たコマンド ライン インターフェイスを提供しますが、同じように動作するわけではありません。
Docker と Podman の大きな違いの 1 つは、Docker は永続的で自己完結型のランタイムを実行してそのオブジェクトまたは dockerd と呼ばれるデーモンを管理するのに対し、Podman は動作するためにデーモンに依存せず、代わりに Podman がコンテナーを開始することです。 Podman は子プロセスとして機能し、ランタイム プロセスを使用してレジストリや Linux カーネルと直接対話するため、Podman はデーモンレス コンテナ テクノロジと呼ばれます。
デーモンがないことで、コンテナ エンジンとしての Podman の柔軟性が向上し、単一プロセスへの依存がなくなります。 Podman と Docker のもう 1 つの大きな違いは、root 権限を必要としないことです。この機能は追加の安全バッファーを提供し、重要なシステム設定を操作してコンテナーとそれに含まれるアプリケーションを脆弱にする可能性がある特定の潜在的に危険なプロセスを制限します。
さらに、Podman は、単一のエンティティとして管理され、共有リソース プールを利用する 1 つ以上のコンテナのコレクションであるポッドを実行できます。この機能を使用すると、Podman ユーザーはワークロードを Kubernetes に移動できます。
2. LXD
LXD は、LXC Linux コンテナー専用に設計されたオープンソースのコンテナー エンジンです。 LXC を使用すると、ユーザーは個別のコアを管理する技術的な負担を負うことなく、分離されたコンテナーまたは仮想マシンと同様の仮想環境でアプリケーションを実行できます。 LXD は、LXC ソフトウェア ライブラリへのインターフェイスを提供し、ネットワーク、データ ストレージ、および複数の LXC コンテナの管理を処理するデーモン プロセスを作成します。 LXC はスタンドアロン ツールとして実行できますが、機能のサブセットは限られています。 LXD はこれらの追加機能を提供するため、LXC に依存して動作します。
LXD と Docker の主な違いは次のとおりです。コンテナーごとに 1 つのプロセスを推奨する Docker の設計パターンとは異なり、LXC/LXD のコンテナーは複数のプロセスを実行できます。さらに、Docker コンテナは LXD に比べて移植性が高く、リソースを効果的に抽象化します。最後に、Docker は Windows および macOS 環境での実行をサポートしていますが、LXD は Linux のみをサポートしています。
3.containerdcontainerd は、下部で runc を実行することにより、オペレーティング システムとコンテナ エンジン間のインターフェイスを提供する高度なコンテナ ランタイムです。 runc は、Windows および Linux でサポートされているデーモンで、オペレーティング システム固有の機能を抽象化し、コンテナーの実行と監視、イメージ転送とストレージの管理を容易にします。
containerd によって提供されるこのレベルの抽象化により、いくつかの下位レベルのシステム呼び出しを行う複雑さが解消され、コンテナーの移植性が可能になります。ただし、Docker とは異なり、containerd はイメージの構築やボリュームの作成を処理しません。興味深いことに、containerd は Docker のデフォルトのランタイムでしたが、現在は runc と同様にスタンドアロン ツールになっています。これにより、containerd は、最も人気のある Docker の代替手段の 1 つである Kubernetes のような便利なオーケストレーション ツールにもなります。
4. BuildahBuildah は、コンテナ化システム用に Red Hat Foundation によって開発された OCI イメージ構築ツールです。 Docker で「docker build」を実行するのと同様の機能を提供するツールです。 Buildah は相互補完するために Podman と併用されることが多く、たとえば、Podman は Buildah 機能のサブセットを内部で使用してビルド プロセスを実装します。
これらのイメージは OCI に準拠しているため、Dockerfile または Containerfile からイメージを構築し、Docker で作成されたイメージと同じイメージを生成できます。さらに、画像レイヤーをきめ細かく制御できるため、単一レイヤーで複数の変更をコミットできます。また、コンテンツを含まないイメージを最初から構築する機能も提供され、ユーザーはアプリケーションの実行に必要なパッケージのみを自由に追加できます。最後に、Docker とは異なり、Buildah ではユーザーは自分が構築したイメージのみを見ることができます。
5. BuildKit
BuildKit は、イメージをビルドする第 2 世代の Moby プロジェクトであり、新しい Docker バージョンで実験的な機能として利用できます。 Docker と同様に、デーモンを使用して実行されます。ただし、標準の Docker ビルドと BuildKit の主な違いの 1 つは、前者はレイヤーごとにビルドするのに対し、後者は並列ビルド処理を提供することです。この機能によりパフォーマンスが向上し、ビルドが高速化されます。 BuildKit では、未使用のステージをスキップしたり、増分ビルドを改善したり、ルートレス ビルドを可能にしたりすることもできます。さらに、BuildKit はキャッシュを使用して、イメージの各レイヤーを再構築する必要性を減らします。
6. Kaniko
Kaniko は、Dockerfile からイメージを構築できる Google イメージ構築ツールです。 Buildah と同様にデーモンはありませんが、Kubernetes でイメージを構築することに重点を置いています。 Kaniko は通常、Kubernetes などのコンテナ オーケストレーターを使用してイメージとして実行されるため、ローカル開発インスタンスにはあまり便利ではありません。 Kaniko は、Kubernetes クラスターの継続的インテグレーションとデリバリー パイプラインに便利なツールです。
7. RunC
RunC は、以前は Docker アーキテクチャに組み込まれたモジュールであり、2015 年にスタンドアロン ツールとしてリリースされました。それ以来、標準化され、相互運用可能なコンテナ ランタイムとして広く使用されるようになりました。 DevOps チームは、これを Docker またはその他のカスタム コンテナ エンジンの一部として使用できます。 RunC は、コンテナ化エコシステムのコンテナ ランタイム部分に属します。コンテナー ランタイムは、コンテナーの実行を処理するコンテナー エンジンで使用される下位レベルのコンポーネントです。
推奨される学習: 「docker ビデオ チュートリアル 」
以上がdockerに似たソフトウェアはありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。