Docker Desktopのメモリ食いすぎ問題にMacエンジニアが終止符を打った話
OrbStackの存在は知ってた。知ってたけど乗り換えが面倒で放置してた。重い腰を上げて実際に計測したら差がエグかったので全部書く。
エンジニアのゆとです。
MacでDocker使ってる人、メモリ消費やばくないですか。16GBのMacBook Proなのに、Docker Desktop起動した瞬間にメモリ残量が半分以下になって、ブラウザとエディタ開いたらファンが唸り始めるやつ。
この問題、もう3年くらい付き合ってきました。
で、結論から言うと OrbStackに乗り換えたら終わった んですが、ここで「OrbStackすごい!みんな使おう!」みたいな記事を書いても意味がない。OrbStackの存在なんてMacで開発してる人ならだいたい知ってると思います。
この記事で書きたいのは、なんで乗り換えるのが遅れたのかと、実際に計測したらどのくらい差があったのかの2つです。
そもそもなんでDocker Desktopがメモリを食うのか
先に前提だけ整理しておきます。
MacにはLinuxカーネルがないので、Docker Desktopは裏でLinux VMを立ててその上でコンテナを動かしています。このVM(LinuxKit)が常駐して、デフォルトでホストRAMの50%を確保する。コンテナが解放してもVM側がメモリを返しにくい。
Apple SiliconでHyperKitからApple Virtualization Frameworkに変わったけど、「VMの上でコンテナを動かす」構造自体は同じです。Docker Desktopが重いのは仕組み上どうしようもない。
OrbStackを知ってたのに乗り換えなかった理由
OrbStackの名前を最初に見たのは2024年くらいだったと思います。TwitterでMacの開発環境系の話題が流れてきて「Docker Desktopの代替でめちゃ軽い」みたいなのは見てた。
でも乗り換えなかった。理由はいくつかある。
「docker-compose.ymlそのまま動くの?」問題
一番デカかったのはこれ。仕事で使ってるプロジェクトのdocker-compose.ymlが10サービスくらいあって、ネットワーク設定やボリュームマウントも複雑。これが動かなかったら終わる。「互換性あります」って公式に書いてあっても、実際に手元の構成で動くかは別の話じゃないですか。
「Docker Desktop、最近ちょっとマシになったかも」の幻想
Docker Desktopもアップデートのたびに「パフォーマンス改善」って書いてあるので、「そのうち改善されるかも」みたいな淡い期待があった。VirtuoFSが入った時とか、リソースセーバーが追加された時とか、ちょっと軽くなった気がして。
気がしただけだった。
単純にめんどくさい
正常に動いてるものを入れ替えるのはリスクがある。開発中のプロジェクトが止まったら困る。忙しいときにわざわざ環境をいじりたくない。
結局「困ってるけど動いてるからいいか」で3年経った。
重い腰を上げたきっかけ
先月、開発中にDockerコンテナ4つ + Chrome + Cursorを開いた状態でメモリ使用量が15.2GBまでいって、Macが完全にフリーズした。強制再シャットダウンして、保存してなかったコードが飛んだ。
さすがにキレた。その日のうちにOrbStackを入れた。
乗り換えは拍子抜けするほど簡単だった
覚悟してたけど、マジで何も起きなかった。
brew install orbstack
OrbStackを起動したら、Docker Desktopのコンテナとイメージを自動でインポートするか聞かれるのでYes。それだけ。
既存のプロジェクトでそのまま動く。
docker compose up -d # そのまま動く
docker ps # そのまま動く
docker exec -it app sh # そのまま動く
心配してたdocker-compose.yml(10サービス、カスタムネットワーク、名前付きボリューム)も何も変更せずそのまま動いた。.envの読み込みも、depends_onの順序制御も、ヘルスチェックも全部同じ。
乗り換えに要した時間、約5分。3年悩んでた自分が馬鹿みたいだった。
体感の変化
乗り換えた直後に感じたのは「軽い」とかじゃなくて「Dockerが動いてることに気づかない」でした。
Docker Desktop時代は、起動したらアクティビティモニタの上位にcom.docker.hyperkit(最近はcom.docker.backend)が常駐してて、存在感がすごかった。OrbStackにしたらプロセス一覧を見ても見つからないくらい存在感がない。
ファンが回らない。Finderがカクつかない。Chromeのタブを閉じなくていい。
ただ、「体感で軽い」だけだと記事として微妙なので、ちゃんと計測しました。
定量検証: Docker Desktop vs OrbStack
同じMacBook Pro(M2, 16GB RAM, macOS Sequoia 15.3)で、同じ条件で計測しました。
検証環境
マシン: MacBook Pro M2 2022, 16GB RAM
OS: macOS Sequoia 15.3
Docker Desktop: v4.38.0 (Engine 27.5.1)
OrbStack: v1.9.3
計測ツール: アクティビティモニタ + memory_pressure + docker stats
検証1: アイドル時のメモリ消費
Docker/OrbStackを起動して、コンテナは何も立てず5分放置した状態。
| 計測項目 | Docker Desktop | OrbStack | 差分 |
|---|---|---|---|
| プロセス合計メモリ | 4.2 GB | 0.8 GB | -3.4 GB (81%減) |
| メモリプレッシャー | 65% (Yellow) | 22% (Green) | - |
| swap使用量 | 1.8 GB | 0 GB | - |
起動しただけで4.2GB持っていくDocker Desktopに対して、OrbStackは0.8GB。何もしてない状態でこの差。

検証2: 開発用コンテナ3つを稼働
実際の開発を想定して、以下の構成でコンテナを起動。
services:
app:
image: node:20-alpine
# Express.jsアプリを起動
db:
image: postgres:16-alpine
cache:
image: redis:7-alpine
起動後5分間安定させてから計測。
| 計測項目 | Docker Desktop | OrbStack | 差分 |
|---|---|---|---|
| プロセス合計メモリ | 8.1 GB | 2.3 GB | -5.8 GB (72%減) |
| メモリプレッシャー | 88% (Red) | 35% (Green) | - |
| swap使用量 | 4.2 GB | 0.1 GB | - |
| Mac全体の空きメモリ | 1.4 GB | 7.2 GB | +5.8 GB |
Docker Desktopだと16GBのうち8.1GBがDockerに取られて、ブラウザとエディタを開いたらswapが4.2GBまで膨らんでた。OrbStackだと空きメモリが7.2GBもある。全然違う世界。
検証3: docker compose up の速度
10サービスのdocker-compose.yml(イメージはすべてキャッシュ済み)を起動。
| 計測項目 | Docker Desktop | OrbStack |
|---|---|---|
| コールドスタート(Docker/OrbStack起動から) | 48秒 | 8秒 |
| ウォームスタート(すでに起動済み) | 12秒 | 6秒 |
コールドスタートの差が大きい。Docker DesktopはVM起動に30秒以上かかるのに対して、OrbStackは一瞬。

検証4: ファイルシステム共有のI/O
ホスト側のマウントボリュームに対してddで書き込み速度を計測。
docker run --rm -v $(pwd)/tmp:/data alpine \
dd if=/dev/zero of=/data/testfile bs=1M count=1024
| 計測項目 | Docker Desktop (VirtioFS) | OrbStack |
|---|---|---|
| 書き込み速度 | 280 MB/s | 890 MB/s |
| 読み取り速度 | 320 MB/s | 1.1 GB/s |
ファイルI/Oが3倍以上速い。フロントエンドのホットリロードとか、ログの書き出しとか、体感で「あれ、速くなった?」と感じてたのはこれが原因だった。
Colima も検討した
OrbStackの前に Colima も候補に入れました。オープンソースのDocker Desktop代替。
brew install colima
colima start --memory 4 --cpu 4
同じ条件で計測した結果。
| 計測項目 | Docker Desktop | Colima | OrbStack |
|---|---|---|---|
| アイドル時メモリ | 4.2 GB | 2.1 GB | 0.8 GB |
| コンテナ3つ稼働時 | 8.1 GB | 4.8 GB | 2.3 GB |
| compose up(コールド) | 48秒 | 22秒 | 8秒 |
Docker Desktopよりは軽いけど、OrbStackには及ばない。VMのオーバーヘッドが残っている感じ。完全無料でOSSがいいならColimaはアリだけど、OrbStackも個人無料なので自分はOrbStackにした。
乗り換え後1ヶ月経った感想
正直なところ、乗り換え後に「OrbStackすごい!」と思った瞬間はほとんどなくて、Dockerの存在を意識しなくなったが一番近い。
Docker Desktop時代は毎日「メモリ大丈夫かな」「Chrome閉じようかな」「ファン回ってきたな」みたいなことを気にしてた。それが完全になくなった。開発に集中できる時間が増えたのが一番デカい。
数字で言うと、16GBのMacでDocker + Chrome + Cursor + Slack + ターミナルを全部開いた状態で空きメモリが6〜7GBある。Docker Desktop時代はswap地獄だった構成がこれ。
まとめ
- OrbStackの存在は前から知ってた
- 「docker-compose互換大丈夫?」「Docker Desktopそのうち改善されるかも」で先延ばしにしてた
- 実際に乗り換えたら5分で終わって、互換性の問題もゼロだった
- メモリ消費72〜81%減、I/O速度3倍、起動時間6分の1
- 乗り換えない理由がない
もっと早くやればよかった、としか思わない。同じように「知ってるけど腰が重い」人は、次にDockerでファンが回った時が乗り換え時です。
この記事は実際にDocker DesktopとOrbStackの両方を同一マシンで計測した上で書いています。体験していないものを「使ってみた」として書くことはしません。