とことんDevOps | 日本仮想化技術のDevOps技術情報メディア

DevOpsに関連する技術情報を幅広く提供していきます。

日本仮想化技術がお届けする「とことんDevOps」では、DevOpsに関する技術情報や、日々のDevOps業務の中での検証結果、TipsなどDevOpsのお役立ち情報をお届けします。
主なテーマ: DevOps、CI/CD、コンテナ開発、IaCなど
読者登録と各種SNSのフォローもよろしくお願いいたします。

Docker Desktopと代替ソフトウェア大集合

Docker Desktopは普段使いのマシンでコンテナーでアプリケーションを実行することができるソフトウェアで、Dockerのサイトからダウンロードして使うことができます。

開発中のアプリケーションのテストとか、手元の環境でソフトウェアを動かしてみたい時に便利です。VSCodeとの連携もバッチリで、VSCodeコードでコーディングしたアプリケーションをDockerコンテナーで実行するDevContainerにも対応しています。最近のバージョンでLinux Desktop版も提供されるようになったので、もちろんパソコンは必要ですが、Linux DesktopにDocker Desktopをインストールすれば、ほぼ無料でコンテナーベースのアプリケーション開発が可能になります。

良い世の中になりました。

そんな便利なDocker Desktopですが、Dockerの方針変更で次の条件に当てはまる大規模企業での利用については無料ではなく有料のライセンスが必要になりました。

www.docker.com

詳しくは公式の情報があるので詳細はここでは述べませんが、これをきっかけとしていくつかの代替ソフトウェアが開発されるきっかけになりました。

今回はDocker Desktopに関しての最近の状況とDocker Desktop以外の選択肢について、いくつかご紹介したいと思います。

Docker Desktop

Docker Desktopは元々はLinux以外の環境でDockerを使えるようにするためのソフトウェアでした。現在はLinuxにも対応しており、Linuxでデスクトップ環境を用意すれば、Linuxでもコンテナベースのアプリケーション開発ができます。

Ubuntu 22.04 DesktopにインストールしたDocker Desktop

Docker DesktopにはDocker Extensionsというものがあり、ブラウザーのアドオンのような感覚で様々な機能を追加できます。設定の中にKubernetesという項目があり、そこからKubernetesクラスターを作成できます。 Dockerの他、Visual Studio Codeやその拡張機能などを入れると便利です。

DockerDesktopのダウンロード

www.docker.com

Rancher Desktop

Rancher DesktopはRancher Labsが開発しているオープンソースのコンテナ管理ソフトウェアです。DockerDesktopは前述のように一定の規模の企業で利用するには有料のサブスクリプションが必要になり、代替を探すユーザーがまず候補として挙げるソフトウェアの一つになっています。

Rancher Desktopを取り上げた過去記事 devops-blog.virtualtech.jp

Rancher Desktopの利点としてはランタイムとしてDockerとcontainerdを選べることがまず挙げられます。containerdはKubernetesのCRI規格に対応したランタイムであり、Dockerよりも軽量かつスムーズに動きます。nerdctlというCLIを使ってDockerのようにコンテナの各種操作が可能です。もちろんDockerをランタイムとして選択することもできます。この場合、VSCodeのDocker拡張やDev Containers拡張を使うことでコンテナアプリケーション開発がDocker Desktopで実行した時と同じように実現可能です。 Rancher DesktopでもKubernetesクラスター(正確にはk3sを使ったクラスター)を作成できます。DockerDesktopでは特定のバージョンのクラスターしか作成できませんが、Rancher Desktopは色々なバージョンのクラスターを実行できる点もメリットです。

Rancher Desktopのダウンロード

rancherdesktop.io

Podman Desktop

Podman DesktopはRed Hat社が中心となり開発しているPodmanをDocker DesktopのようにGUIで色々設定、コンテナ、イメージ、ボリューム管理できるようにしたソフトウェアです。開発当初はPodmanのインストールが別途必要でしたが、現在はインストール時にシステムにPodmanがインストールされていない場合は自動的にインストールしてくれるようになったため、他のソフトウェア同様に利用できます。以前は設定変更が必要だったVSCodeのDocker拡張やDev Containers拡張を使った開発も現在は特に設定変更することなく実行可能です。

Podman Desktopを取り上げた過去記事

devops-blog.virtualtech.jp

Docker DesktopやRancher DesktopのようにVMベースで動いてはいるものの、Podmanはデーモンレスで動くため、Dockerよりも軽量に動く点がPodmanを使うメリットだと思います。

Podman Desktopのダウンロード

podman-desktop.io

その他の代替ソフトウェア

Container Desktop

Container DesktopはWindows向けのDocker Desktopの代替です。主にCLIでDocker操作に慣れたユーザーであれば十分代替として使えます。WSL V2、Hyper-V、VirtualBox、VMware WorkstationベースでDockerを動かすことができるようです。

Container Desktopのダウンロード

container-desktop.io

Finch

Finch はAWSが提供するオープンソースのコンテナ管理ソフトウェアです。コマンドラインベースでの利用が可能であり、内部的にはLima, nerdctl, containerd, BuildKitなどのオープンソースソフトウェアとうまく連携して動くソフトウェアのようです。 現在はmacOS向けのパッケージのみ提供されていますが、LinuxやWindows向けのリリースも現在検討されているようです。

Finchについてはこちらで取り上げています。

devops-blog.virtualtech.jp

Finchのダウンロード

github.com

そのほか

Limaとnerdctlとcontainerdの組み合わせも試しています。

devops-blog.virtualtech.jp

最後に

Docker Desktop代替のソフトウェアはここ近年充実してきましたね。Docker Desktopの有料版を含めて開発者のニーズに適したソフトウェアを選択したいものです。