← すべての記事
·約5分·HowTo

Macに、Docker DesktopなしでDocker環境を構築する方法

はじめに

筆者の環境は次のとおり。

  • OS: Mac OS 26 Tahoe
  • Mac: MacBook Air M1 (Apple Sillicon)
  • Homebrew 5.0.15

Dockerは便利であるという話

Dockerの価値は、環境をコードとして扱える点だ。

  • 開発環境と本番環境の差分を減らす
  • 依存関係をプロジェクト単位で閉じ込める
  • 壊して作り直すことを前提にできる

一度この運用に慣れると、Dockerなしでの開発には戻れなくなる。
特に、ホスト側にあれこれSDKやらパッケージマネージャを入れるのが面倒になって、一旦Docker上で作っておくかという思考になる。

問題は、MacでどうDockerを動かすか、という点。

Docker Desktopがあるのに、なぜ使いたくないか

Docker Desktopは便利だが、使いたくない理由がある。

ライセンスの問題

従業員数250人以上、または年間売上1,000万ドル以上の企業では、Docker Desktopの使用が有料となっている。
しかし肝心のDocker EngineはApache-2.0ライセンスで問題なく無償利用することが可能だ。
よって、業務ではDocker Engineだけを使うことが多い。
またローカルだけDocker Desktop、本番はDocker Engineというのも、何とも気分が良くない。

常駐プロセスの多さ

Docker Desktopは、バックグラウンドで多くのプロセスが常駐する。
「使っていないのに重たい」
という状態が発生する。

ブラックボックスなVM

Docker Desktop内部で動いているVMの実態が見えにくい。何が起きているのかわからない環境は、なるべく避けておきたい。

推奨構成はColima × Docker Engine

結論はシンプル。

Colima × Docker Engine (CLI)

  • Docker Desktopは使わない
  • Docker CLIのみをインストール
  • VM管理はColimaに任せる

軽量で挙動がわかりやすい。また、業務環境にも近くなるはずだ。

なぜColimaが必要なのか?

DockerはVM技術ではない。
Linuxカーネルの機能を使うコンテナ技術。

一方で、macOSのカーネルとLinuxのカーネルは完全に別物。

そのため、MacでDockerを使うには、

  1. Mac上でLinux VMを起動
  2. VM上でDocker Engineを動かす

という構成が必須になる。

LimaとColima

Apple Sillicon対応の軽量仮想化ツールとしてLimaというものがある。
これをラッパーして面倒な設定などをコマンド一つで管理できるのがColimaだ。

これで必要な時だけVMを起動することができる。

セットアップ手順

この手順ではHomebrewが使えることを前提としている。

Colimaのインストール:

brew install colima

Docker CLI/Docker Composeのインストール:

brew install docker docker-compose

これで一応最低限インストールは出来たのだが、この状態ではまだdocker composeサブコマンドが使えない。

そこで、Docker CLIプラグイン用のディレクトリを作成し、手動でシンボリックリンクを貼る。

# CLIプラグイン用のディレクトリを作成
mkdir -p ~/.docker/cli-plugins

# brewで入れたdocker-composeへシンボリックリンクを張る
ln -sfn $(brew --prefix)/bin/docker-compose ~/.docker/cli-plugins/docker-compose

Colima上でDockerを起動する

Colimaを起動。

colima start

初回はLinuxイメージのダウンロードが走るはずなので、少し待つ。

次にバージョン確認。

docker -v
# 出力例→ Docker version 29.1.2

docker compose version
# 出力例→ Docker Compose version 5.0.0

最後に、簡単な動作確認。

docker ps
# 出力→ CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

作業終了後は、Colimaを停止してリソースを解放してあげると良い。

colima stop

もし起動状態を調べたければ、確認可能。

colima status

最後に

この構成で、Apple SilliconのDocker DesktopなしのDocker環境を構築することができる。

Docker Desktopが悪いわけではないが、

  • 何が動いているかを把握できる環境
  • リソースを自分で管理できる環境

を好むなら、Colimaという選択はかなり有用だ。