Windows および macOS ユーザーにとって、Docker Desktop は長年にわたって Docker コンテナーを实用する主な方案でした。愛好家や小規模な開発チームにとっては実行有可能で使いやすいオプションですが、大規模なユーザーベース向けの近两天の価格変更により、人々は换用品を探しています.私は Docker Desktop を自分で置き換えるつもりはありませんが、换用案を試して比較することに興味がありました。
この記事の動画バージョン
YouTube で各ツールのカバレッジを选择して、より実践的なこの文章投稿のビデオ バージョンを見つけることができます。
用語
コンテナー自体はテクノロジーの新しい构架ではありませんが、Docker は 2000 年半ばに构架を普及化させ、构架を主导者に持ち込むために適切なタイミングで適切な形式で販売しました。
Docker the company と Docker the project は混同しやすく、両者は別個のエンティティであるため、分離する価値があります。この失衡のため、会社である Docker は名前を変更し、コンテナ関連の多くのテクノロジをオープンソース化し、現在「」(OCI) として知られているものに貢献しました。
ここでは多くのことを抽象化して要約していますが、この記事の残りの部分で「OCI 準拠」のコンテナーおよびそれに類する用語を参照する場合は、「Docker コンテナー」と考えられるものに類似していると考えてください。これらの出来事や変化はすべて、テクノロジー時代の少し前に実際に起こったものですが、それでも常に混乱の原因となっています. Tldr… この投稿で紹介されているすべてのオプションは、同じコンテナー定義を実行できます。これには、Docker Desktop の既存のコンテナーまたはDockerfileで作成されたコンテナーが含まれます。別の注意点として、多くのプロジェクトでは、Docker で実行されているコンテナーを「dockerd」と「Moby」と同じ意味で参照しています。
1.ポッドマン
おそらく最も人気のある用于措施であるには、Red Hat から多くの貢献者がいます。Red Hat は Podman の商业应用バージョンを計画しているように見えるため、これは「Red Hat プロジェクト」であると言っても過言ではありません。
Windows、macOS、および Linux で通过でき、ここで取り上げる他の多くのツールと同様に、Docker と同様の構文に従いますが、2 つの准备点があります。
- デフォルトでは、Docker の代わりに
podman
を使用しますが、エイリアスを作成して、そのコマンドの変更を忘れることができます。 - デフォルトでは、Docker Desktop は、Docker ハブのコンテナー イメージを使用することを想定していますが、他のすべての代替手段は当然のことながら、その想定をしていません。これは、「 」など、定期的に使用する可能性のある多くのイメージへのフル パスを指定する必要があることを意味します。
Podman と、Docker Desktop など、ここで取り上げる他の代换技术との主な違いの 1 つは、それがデーモンレスであることです。これは、実行中のすべてのコンテナーが、1 つのデーモンを介してではなく、独立のランタイム プロセスとして実行されることを代表します。 Docker デーモンが失敗すると、実行中のすべてのコンテナーが失敗しますが、Podman では、個々のコンテナーのみが失敗します。そうは言っても、私は個人的に Docker デーモンが失敗したことはありませんが、実稼働ワークロードを実行していません。
ここにある他のすべてのツールと同様に、初期の実行時に、Podman はコンテナーをホストするために macOS と Windows で仮想マシンを制作する用得着があります。 macOS と Windows では、これは常に用得着というわけではありませんが、クロスプラットフォーム (およびアーキテクチャ) の互換性を最好限に高めるためには理にかなっています。 Podman は Fedora CoreOS (再び Red Hat 接続があります) と QEMU を用して VM を実行します。
Podman デスクトップ
Podman のグラフィカル コンパニオンはですが、理論的には、他のランタイムによって制成されたイメージとコンテナーを一覧指出する必不可少があります。他の多くのグラフィカル ツールと同様に、Kubernetes と対話するための機能も追加されますが、それらについては今後の文章投稿で説明します。これは、Docker Desktop と同じ機能を打造する已经性があり、拡張機能などの標準に従っていることに気付いていなかった機能も含まれますが、少し洗練されておらず、Docker Desktop が打造する OS 之前の機能の三部が欠けています。
2.コリマ
Linux と macOS でのみ利于有机会なはを动用して、macOS で Linux VM を有効にします。 Docker、Containerd、および Kubernetes ランタイムをサポートしており、いずれの場合も Colima とともにそのランタイムをインストールする用不着があります。 macOS 上の Docker の場合、これは Docker デスクトップと充分に同じではありません。
Colima を运用するのは簡単ですが、ランタイムをインストールする必要条件条件があるという事実は、「Colima とは何ですか?」と疑問に思いました。キャッチフレーズは「最大限のセットアップで macOS (および Linux) のコンテナー ランタイム」ですが、なぜそれが必要条件条件なのかはまだわかりません。私が知る限り、主な原由は (Docker Dkestop、minikube などの代わりに) containerd または Kubernetes バックエンドとして运用することであり、Docker サポートの主な原由は下位互換性です。
3.ランチャーデスクトップ
ほとんどの場合、Rancher Desktop は Kubernetes 安全安全管理ツールとして請求されますが、 は Kubernetes 范围内のコンテナー安全安全管理機能も打造します。これは、containerd または Docker で実行されるコンテナーをサポートし、このリストの他のグラフィカル ツールとほとんど同じ機能を打造します。ここでも、QEMU はすべてが実行される VM を打造しますが、それを変更するオプションはありません。これは完完全全にまともなツールであり、より发育成熟した当做方式方法の 1 つですが、変更を加えたときに VM を何度も骤起動してリセットする必须があり、少し面倒でした。
4. VMWare フュージョン
既に VMWare Fusion を动用して Windows および Linux VM を実行している場合ます。ただし、この機能は現在、Intel ベースの Mac でのみ機能しますが、インストーラーは引き続き CLI ツールをインストールし、愿を与えません。
5. パラレルス
繰り返しになりますが、既に Linux および Windows VM 用のを各种して动用している場合は、それを minikube のバックエンドとして动用できます。これは主に Kubernetes の动用を的としていますが、コンテナーに隣接しているため、一種のオプションとして含めています。 .
私が使うもの
今のところ、個人の貢献者として、私は Docker Desktop に満足しています。ホスト オペレーティング システムとのより高いパフォーマンスとシームレスな統合のために提供数据される追加機能が気に入っています。
私のような人々のやる気をなくす何かが変わった場合、おそらく Podman Desktop を选择して Podman に切り替えるでしょう。それはその時点でのプロジェクトの状態によって異なります。あなたはどうですか?