はじめに
Docker Desktop は多くの開発者にとって便利なツールですが、さまざまな理由で Lima への移行を検討するケースもあります。この記事では、MAC でDocker Desktop をアンインストールし、Lima を導入する過程を説明します。
参考文献
Docker Desktop のアンインストール
Docker Desktop のアンインストールは、公式ドキュメントの指示に従って行うことができます。アンインストールはシステムの設定やリソースの解放に役立ち、Lima の導入の準備を整えます。
# CLI から Docker Desktop をアンインストールすることもできます。さようなら。 /Applications/Docker.app/Contents/MacOS/uninstall # Docker Desktop をアンインストールした後、削除できるファイルがいくつか残るので合わせて削除 rm -rf ~/Library/Group\ Containers/group.com.docker rm -rf ~/Library/Containers/com.docker.docker rm -rf ~/.docker
Lima のインストール
Lima は、macOS で Linux 仮想マシンを容易に管理するためのツールです。Docker コンテナの実行環境として Lima を使用することで、Docker Desktop と同等の機能を低リソースで利用できます。Lima のインストールプロセスは以下のコマンドで行います。
# Lima インスタンスの作成: # `docker` という名前の Lima インスタンスを Docker のテンプレートを使って作成します。 limactl create --name=docker template://docker # Lima インスタンスの起動: # 作成した `docker` インスタンスを起動します。 limactl start docker # 稼働中の Lima インスタンスの一覧表示: # 現在稼働中の Lima インスタンスの状態を表示します。 limactl ls NAME STATUS SSH VMTYPE ARCH CPUS MEMORY DISK DIR docker Running 127.0.0.1:65015 qemu aarch64 4 4GiB 100GiB ~/.lima/docker
Docker CLI のインストール
Lima がインストールされた後、Docker コマンドラインインターフェース (CLI) をインストールする必要があります。以下のコマンドを使用して、macOS 用の Docker CLI をダウンロードし、インストールします。今回はdocker-25.0.4.tgzをダウンロードしますがこちらを参考に最新版をinstallしてください。
# Docker CLI バイナリのダウンロード: # macOS 用の Docker CLI バイナリをダウンロードします。 curl -L -O https://download.docker.com/mac/static/stable/aarch64/docker-25.0.4.tgz # ダウンロードしたアーカイブの展開: # ダウンロードした tar.gz アーカイブを展開します。 # 毎回、調べているので悲しい tar -xvzf docker-25.0.4.tgz # Docker CLI の移動: # 展開した Docker CLI をシステムの PATH の一部である /usr/local/bin に移動します。パスはどこでもいいけどブログなので...。 mv docker/docker /usr/local/bin/
修正: brew install でのdockerのインストール
勝手に--cask
とか付けて全部入るなーって思っていたのですがbrew install docker
のみの場合にはDocker CLIのみをインストールすることができます
brew install docker
参照: Lima で vz + rosetta を使って ARM VM 上で x86_64 バイナリを実行する #Docker - Qiita
Lima-Docker の設定
Lima と Docker CLI がセットアップされたら、Lima ベースの Docker 環境を利用するための設定を行います。以下のコマンドで Docker コンテキストを作成し、利用を開始します。
# Docker コンテキストの作成: # `lima-docker` という名前の Docker コンテキストを作成し、Lima インスタンス上の Docker デーモンに接続します。 docker context create lima-docker --docker "host=unix:///Users/<username>/.lima/docker/sock/docker.sock" # 作成した Docker コンテキストの使用: # `lima-docker` コンテキストをアクティブにして、以降の `docker` コマンドが Lima インスタンスを対象に実行されるようにします。 docker context use lima-docker # Docker コンテナの実行 (テスト): # Docker 環境が正しく設定されているかを確認するため、hello-world イメージを実行します。 docker run hello-world # Docker での nginx コンテナの実行: # nginx イメージをバックグラウンドで実行し、ポート 8181 をコンテナのポート 80 にフォワードします。 docker run --name lima-test-nginx -d -p 8181:80 nginx
これらのステップを完了することで、Lima 上で Docker コンテナを実行し、管理することができるようになります。
おまけ:KIND (Kubernetes IN Docker) の利用
KIND (Kubernetes IN Docker) は、Docker 上に軽量な Kubernetes クラスタを構築するためのツールです。Lima 環境上で Docker を利用している場合でも、KIND を使用して Kubernetes のテスト環境を簡単にセットアップできます。
# KIND クラスタの作成: # 新しい Kubernetes クラスタを作成します。このクラスタは Docker コンテナ内に構築されます。 $ kind create cluster # 作成されたクラスタの一覧表示: # 現在 KIND によって作成されたクラスタの一覧を表示します。 $ kind get clusters kind # クラスタ情報の取得: # 作成した KIND クラスタのコントロールプレーンやサービスの情報を取得します。 $ kubectl cluster-info --context kind-kind Kubernetes control plane is running at https://127.0.0.1:51050 CoreDNS is running at https://127.0.0.1:51050/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. # 全てのネームスペースで動作している Pod の一覧表示: # クラスタ内の全ネームスペースにわたる Pod の状態を確認します。 $ kubectl get pod -A NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-76f75df574-5glm8 1/1 Running 0 87s kube-system coredns-76f75df574-jwn6z 1/1 Running 0 87s kube-system etcd-kind-control-plane 1/1 Running 0 103s kube-system kindnet-qlftc 1/1 Running 0 86s kube-system kube-apiserver-kind-control-plane 1/1 Running 0 102s kube-system kube-controller-manager-kind-control-plane 1/1 Running 0 100s kube-system kube-proxy-6nwnv 1/1 Running 0 86s kube-system kube-scheduler-kind-control-plane 1/1 Running 0 100s local-path-storage local-path-provisioner-7577fdbbfb-vd28d 1/1 Running 0 87s
おわり。
結論
Docker Desktop のアンインストールと Lima の導入に焦点を当てました。本記事で紹介した手順を通じて、開発環境を効率的に管理し、Docker コンテナの実行を最適化することが可能です。