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」と同じ意味で参照しています。
おそらく最も人気のある代替手段であるPodmanには、Red Hat から多くの貢献者がいます。Red Hat は Podman の商用バージョンを計画しているように見えるため、これは「Red Hat プロジェクト」であると言っても過言ではありません。
Windows、macOS、および Linux で利用でき、ここで取り上げる他の多くのツールと同様に、Docker と同様の構文に従いますが、2 つの注意点があります。
podman
を使用しますが、エイリアスを作成して、そのコマンドの変更を忘れることができます。
Podman と、Docker Desktop など、ここで取り上げる他の代替手段との主な違いの 1 つは、それがデーモンレスであることです。これは、実行中のすべてのコンテナーが、1 つのデーモンを介してではなく、独自のランタイム プロセスとして実行されることを意味します。 Docker デーモンが失敗すると、実行中のすべてのコンテナーが失敗しますが、Podman では、個々のコンテナーのみが失敗します。そうは言っても、私は個人的に Docker デーモンが失敗したことはありませんが、実稼働ワークロードを実行していません。
ここにある他のすべてのツールと同様に、最初の実行時に、Podman はコンテナーをホストするために macOS と Windows で仮想マシンを作成する必要があります。 macOS と Windows では、これは常に必要というわけではありませんが、クロスプラットフォーム (およびアーキテクチャ) の互換性を最大限に高めるためには理にかなっています。 Podman は Fedora CoreOS (再び Red Hat 接続があります) と QEMU を使用して VM を実行します。
Podman のグラフィカル コンパニオンはPodman Desktopですが、理論的には、他のランタイムによって作成されたイメージとコンテナーを一覧表示する必要があります。他の多くのグラフィカル ツールと同様に、Kubernetes と対話するための機能も追加されますが、それらについては今後の投稿で説明します。これは、Docker Desktop と同じ機能を提供する可能性があり、拡張機能などの標準に従っていることに気付いていなかった機能も含まれますが、少し洗練されておらず、Docker Desktop が提供する OS 固有の機能の一部が欠けています。
Linux と macOS でのみ利用可能なColimaはLimaを使用して、macOS で Linux VM を有効にします。 Docker、Containerd、および Kubernetes ランタイムをサポートしており、いずれの場合も Colima とともにそのランタイムをインストールする必要があります。 macOS 上の Docker の場合、これは Docker デスクトップと完全に同じではありません。
Colima を使用するのは簡単ですが、ランタイムをインストールする必要があるという事実は、「Colima とは何ですか?」と疑問に思いました。キャッチフレーズは「最小限のセットアップで macOS (および Linux) のコンテナー ランタイム」ですが、なぜそれが必要なのかはまだわかりません。私が知る限り、主な理由は (Docker Dkestop、minikube などの代わりに) containerd または Kubernetes バックエンドとして使用することであり、Docker サポートの主な理由は下位互換性です。
ほとんどの場合、Rancher Desktop は Kubernetes 管理ツールとして請求されますが、 Rancher Desktopは Kubernetes 以外のコンテナー管理機能も提供します。これは、containerd または Docker で実行されるコンテナーをサポートし、このリストの他のグラフィカル ツールとほとんど同じ機能を提供します。ここでも、QEMU はすべてが実行される VM を提供しますが、それを変更するオプションはありません。これは完全にまともなツールであり、より成熟した代替手段の 1 つですが、変更を加えたときに VM を何度も再起動してリセットする必要があり、少し面倒でした。
既に VMWare Fusion を使用して Windows および Linux VM を実行している場合は、コンテナーもサポートされます。ただし、この機能は現在、Intel ベースの Mac でのみ機能しますが、インストーラーは引き続き CLI ツールをインストールし、希望を与えません。
繰り返しになりますが、既に Linux および Windows VM 用のParallels Desktopを所有して使用している場合は、それを minikube のバックエンドとして使用できます。これは主に Kubernetes の使用を目的としていますが、コンテナーに隣接しているため、一種のオプションとして含めています。 .
今のところ、個人の貢献者として、私は Docker Desktop に満足しています。ホスト オペレーティング システムとのより高いパフォーマンスとシームレスな統合のために提供される追加機能が気に入っています。
私のような人々のやる気をなくす何かが変わった場合、おそらく Podman Desktop を使用して Podman に切り替えるでしょう。それはその時点でのプロジェクトの状態によって異なります。
あなたはどうですか?