LoginSignup
76
55

More than 1 year has passed since last update.

[Mac環境] Docker Desktopの代替として何が最適か

Last updated at Posted at 2022-02-04

はじめに

従来無料で使用できていたDocker Desktop(Docker Desktop for Windows、Docker Desktop for Mac)ですが、2021年9月1日に有料化され、2022年1月31日で有料化の猶予期間が終了しました。2022年2月1日からは一定規模以上の企業における利用は有料化され、Pro、Team、Businessといった有料プランを契約する必要があります。

このニュースが発表されて以来、Docker Desktopの利用者は、有料プランを契約してDocker Desktopを継続利用するか、別の代替手段を探すかを迫られ、多くの代替手段が検討・記事化されてきました。(Docker Desktopには特に不満が無かったので、有料プランが契約できるのであれば契約したいところですが)

私は普段Macを使用していますが、いくつかの代替手段を渡り歩いて使用してきましたので、それぞれのメリット・デメリット、および、現時点(2022年2月3日)のおすすめをまとめたいと思います。

なお、当記事における代替手段は、「Dockerを継続して利用したい(Podmanなどの別のコンテナ環境は考えない)」、「(Docker CLIはbrewで容易に導入可能なので)Dockerデーモンをどうやって準備するか」という観点で考えています。

また、当記事では代替手段の詳細な導入手順、利用手順は記載せず、他の記事を参照するかたちでまとめています。

前提環境

  • マシン:MacBook Pro (14インチ, 2021)(M1 Max, メモリ64GBモデル)
  • OS:macOS Monterey 12.0.1

MacにおけるDocker Desktop代替手段

Mac環境において、Docker Desktopの代替手段としては以下のようなものが挙げられます。Docker Desktopの代替手段として開発されたものではなくても、Dockerデーモン(を持つLinux VM)を提供してくれるという意味で挙げています。

この中でのおすすめは「Rancher Desktop」になります。他の選択肢は飛ばしておすすめだけ確認したい場合は、当記事のRancher Desktopの項を参照ください。

ツール名 概要 ライセンス
minikube Mac、Linux、Windowsのローカル環境でKubernetesクラスタを提供する Apache License 2.0
lima Mac、Linux環境で、自動的なファイル共有、ポートフォワード機能を持つLinux仮想マシンを用意・利用できるようにする(WindowsでのWSL2的なツール) Apache License 2.0
Colima Mac、Linux環境で、最小限の手間で(limaを用いた)コンテナ環境を提供する MIT License
Rancher Desktop Mac、Linux、Windowsのローカル環境でKubernetesクラスタ、および、コンテナ管理機能を提供する Apache License 2.0

minikube

minikubeは、ローカルでKubernetesクラスタを構築・利用できるようにする定番のツールです。

minikubeの場合、minikubeが作成したLinux VM(DriverとしてHyperKit、VirtualBox、Parallelsなどを利用)上のDockerデーモンをネットワーク経由で利用することになります。

minikubeによるDocker環境構築の手順は、以下の記事を参照ください。

なお、コロナの影響によりVPNで在宅勤務している方は多いと思いますが、VPNソフトウェアとしてCisco AnyConnectを使用している場合、minikubeのVMが起動しない、アクセスできないケースがあります。このことにより、個人的にはminikube方式は利用しなくなりました。

【参考】
- VPN causes: waiting for apiserver: timed out waiting for the condition
- Can't use Minikube on VPN

lima

limaは、WindowsでのWSL2的な機能を提供してくれるツールです。この後に紹介するColima、Rancher Desktopは、内部的にlimaを使用しています。

limaを使用すると、MacでLinux VMを簡単に導入・起動することができます。デフォルトではUbuntuですが、Alpine、Rockyなどを利用することも可能です。以下はデフォルトのUbuntuを導入・起動するまでの手順で、非常に簡単なことが分かります。

# limaのインストール
brew install lima

# デフォルトのUbuntu VMを導入・起動
limactl start

# Ubuntuのシェルに入る
lima

limaでは、起動するVMの設定をYAMLファイルで記述します。Dockerが導入されたVMの設定例がlimaの公式で提供されており、このVMに対してMacのDocker CLIから使用するよう設定することでDocker環境を構築できます。

以下の記事では、より詳細な設定の内容、手順が記載されています。

limaのLinux VMは、minikubeのようにAnyConnect起因のNW系の問題が生じず、limaによるDocker環境には満足していたのですが、YAMLファイルを自分で用意する必要がある点で、まだDocker Desktopの容易さには及びません。

Colima

Colimaは、limaを内包し、limaでのVM準備の手間を省き、より簡単にコンテナ環境をセットアップできるようにしたツールです。

以下のコマンドを実行するだけでDocker環境が手に入ります(他のツールも同様ですが、Docker CLIは別途導入必要)。

brew install colima

colima start

セットアップの手順は以下の記事も参照ください。

Colimaのよいところは、Kubernetes環境もColimaで用意できる点です。Colimaを起動する際、--with-kubernetesオプションを付けるだけです。

colima start --with-kubernetes

個人的にはまった点は、limaではDockerデーモンにアクセスするための設定として、~/.zshrc~/.bashrcに環境変数DOCKER_HOSTを設定していたのですが、limaを試した後にColimaを試したため、この設定が残ったままになっていて、DOCKER_HOSTが間違った先を示していたため、dockerコマンドがエラーになるという問題に悩まされました(Colima自体の問題ではなく、私の設定不備です)。

Colimaは手軽さという点でほぼ満点なのですが、Docker DesktopのようなGUIが提供されていないというのが唯一の難点です。

Rancher Desktop

Rancher Desktopは、SUSEからリリースされた、デスクトップ環境におけるコンテナ・Kubernetesの環境構築・管理ツールです。Docker Desktopの無償猶予期間が終了した2022年2月1日にバージョン1.0がリリースされました。

Mac、Linux、Windowsのそれぞれに対応しており、Mac・Linuxではlima、WindowsではWSL2によりLinux VMを稼働させています。

Rancher Desktopの導入は非常に簡単で、Macであればdmgファイルをダウンロードし、dmgファイルをダブルクリックして、展開されたファイルをApplicationsフォルダに配置するだけです。

ApplicationsフォルダのRancher Desktopを起動すると、Linux VM、および、Kubernetesクラスタの作成処理が自動的に実行され、完了後はdockerコマンドでDockerが利用可能になっています。

Rancher DesktopのKubernetesの設定画面が以下です。Kubernetesのバージョン、コンテナランタイム、メモリ・CPUの割り当てなどが設定できます。
「Reset Kubernetes」ボタンで、Kubernetesクラスタを作り直すこともできるようになっています。Kubernetesに試しに色々と入れた結果、初期化したいケースがあると思いますが、そのような場合に使えます。

image.png

Kubernetesが不要な場合、ノードを削除することで無効化できるようです。ただ、このノードの削除がDockerコンテナに影響を与えることもあるようです。もし問題が生じた場合は上記の「Reset Kubernetes」ボタンで元に戻しましょう。

Rancher Desktopのインストールの流れ・詳細は以下の記事も参照ください。

まとめ

私自身は、minikube → lima → Colima → Rancher Desktop と試し、現時点ではRancher Desktopで特に不自由なく利用できています。

ただ、Mac環境でLinux VMが欲しいという点では lima を使用していますので、Docker目的ではなくLinux目的で lima を導入・利用することはおすすめです。

76
55
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
76
55