はじめに
ローカル開発環境でDocker Desktopを使っていると、「Macが急に熱くなる」「メモリを大量に消費して動作がもっさりする」と感じることはないでしょうか。
とくにApple Silicon (Mシリーズ) Macでは、Docker Desktopがバックグラウンドでリソースを食いつぶしてしまうケースが散見されます。そこで今回は、商用利用可能で完全無料、かつ軽量と噂の「Colima」に乗り換え、実際にどれくらいリソース消費やパフォーマンスに差が出るのか、定量的な対照実験を行いました。
Colimaとは
Colima(コリマ)は、macOSおよびLinux上でコンテナ実行環境(DockerやContainerd)を構築するための、オープンソースの軽量コマンドラインツールです。Lima(Linux Machines)をベースにしており、極めてシンプルなCLI操作だけで、コンテナ用のLinux仮想マシン(VM)を素早く立ち上げることができます。
なぜDocker Desktopは重いのか?
両者間でなぜ軽さに違いが出るのか、理由は「ホスト側(Mac側)に常駐するプロセスの多さ」にあります。
-
Docker Desktopが重い理由
コンテナを動かすためのLinux VM本体に加え、「リッチなGUIダッシュボードの描画」「バックグラウンドでのファイル同期・更新監視」「統計分析やビルド監視プロセス(com.docker.backendやcom.docker.buildなど)」が裏で多数常駐しています。これにより、コンテナを何も動かしていないアイドル時でもCPUやメモリを余分に消費してしまいます。 -
Colimaが軽い理由
画面を描画するGUIを一切持たない純粋なCLIツールです。常駐するのは、VM管理ツール(limactl)と通信用のsshプロセス程度しかありません。余計なお世話をしない分、PCのリソースを最大限コンテナ処理自体に回すことができます。
Install方法
macOSであれば、Homebrewを使って数分で導入できます。
1. ツールのインストール
すでにDocker Desktopをインストールしている場合はそのまま docker コマンドを使えますが、完全に移行する場合はDocker CLIとColimaをセットでインストールします。
brew install colima docker docker-compose
2. 高速化オプションを指定して起動
Apple Silicon Macの性能をフル活用するため、macOSネイティブの仮想化フレームワーク(vz)と、高速ファイル共有機構(virtiofs)を有効にして起動するのが鉄則です。
# 例: CPU 4コア、メモリ 8GB、ディスク 64GB で起動
colima start --cpu 4 --memory 8 --disk 64 --vm-type=vz --mount-type=virtiofs
3. 接続先の切り替え確認
コンテナの向き先(コンテキスト)が自動的に colima へ切り替わっているか確認します。
docker context show
# 「colima」と表示されればOK
対照実験
「軽くなった気がする」という感覚的な評価を避けるため、Docker Desktop (v4.72.0) と Colima (v0.10.3) の両環境で全く同じリソース制限を設け、以下のベンチマーク実験を行いました。
実験の前提条件(リソースの完全固定)
フェアな検証を行うため、両環境のVMリソースを100%統一しました。
- CPUコア数: 4 コア
- メモリ (RAM): 8 GB
- ディスク最大容量: 64 GB
-
ファイル共有・仮想化:
virtiofs/ Apple Native Virtualization - 内部エンジン: Docker Engine v29.5.2(両環境で共通化)
実験内容
コンテナ内部で 2GBのダミーファイルを作成し、10秒間のランダムな読み取り・書き込みテスト(sysbench) を実施。ディスクI/O速度と、ホスト側のプロセスが消費する実メモリを測定しました。
1. ディスクI/Oベンチマーク実行コマンド
docker run --rm alpine sh -c "apk add --no-cache sysbench >/dev/null 2>&1 && sysbench fileio --file-test-mode=rndrw --time=10 prepare && sysbench fileio --file-test-mode=rndrw --time=10 run && sysbench fileio --file-test-mode=rndrw --time=10 cleanup"
2. メモリ消費量の測定コマンド
ps aux | grep -iE '(colima|docker|virtualization)' | grep -v grep | awk '{printf "%-40s %6.1f MB\n", $11, $6/1024}'
比較結果
計測した結果を整理した比較表がこちらです。
| 比較項目 | Docker Desktop | Colima | 結果と差分 |
|---|---|---|---|
| ホスト側プロセス消費メモリ | 829.7 MB | 141.7 MB | 約688 MB削減(約83%軽量化) |
| Linux VM本体 消費メモリ | 5,089.8 MB | 4,791.8 MB | 約298 MB削減 |
| 総メモリ消費量(合計) | 5,919.5 MB | 4,933.5 MB | 総計で約1,000 MB(約1.0GB)の空きが増加! |
| ランダムRead速度 (Throughput) | 153.88 MiB/s | 153.02 MiB/s | 同等(誤差0.5%以内) |
| ランダムWrite速度 (Throughput) | 102.58 MiB/s | 102.02 MiB/s | 同等(誤差0.5%以内) |
| 2GBファイル生成タイム | 1.27 秒 (1,618 MiB/s) | 1.72 秒 (1,191 MiB/s) | Docker Desktopが若干高速 |
考察1:コンテナ性能はそのままに、約1GBのメモリが浮く
結果から分かる最大のメリットは、「Macの空きメモリが約1.0GBも増えた」という点です。
ps コマンドでプロセスを分解すると、Docker Desktop側は com.docker.backend や GUIのプロセス群だけで約830MBものメモリを消費していました。一方、Colimaは limactl や ssh などの軽量な管理プロセスしか存在しないため、わずか142MBに抑えられています。
同じメモリ8GBの制限をかけていても、裏側の常駐プロセスを削ぎ落とすことで、PC全体のパフォーマンスを劇的に改善できます。
考察2:開発で一番重要な「ランダムI/O速度」は完全に互角
データベースのアクセスや、アプリケーションコードの大量読み込みなど、実際の開発業務で体感速度に直結するのは「ランダム読み取り・書き込み速度(Throughput)」です。
計測の結果、Read/Writeともに両者は誤差0.5%以内という完全に同等のスピードを記録しました。巨大ファイルの新規作成(シーケンシャルライト)ではDocker Desktopに若干の軍配が上がりましたが、普段の開発で「Colimaにしたせいでアプリの動作が遅くなった」と感じることはまずありません。
おわりに
検証の結果、Colimaは「コンテナの実行スピードを犠牲にすることなく、PCを重くする原因だった不要な常駐メモリを約1GBも削減できる」ことが実測データから証明されました。
商用利用でもライセンスの心配がいらない完全無料のMITライセンスでありながら、これだけ軽快に動くのであれば、CLI操作に抵抗がないエンジニアにとって乗り換えない理由はありません。環境の移行もコマンド数回で終わるため、Dockerの重さに悩んでいる方はぜひ試してみてください!



