Docker Desktopのメモリ食いすぎ問題にMacエンジニアが終止符を打った話

Docker Desktopのメモリ食いすぎ問題にMacエンジニアが終止符を打った話

MacのDocker Desktopが16GB RAMの半分を食う問題をOrbStack乗り換えで解決した実測レポート。アイドル時メモリ81%減、I/O 3倍、起動時間6分の1。Colima比較・docker-compose互換性・Apple Silicon対応・乗り換え手順まで全部書いた。

エンジニアのゆとです。

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 DesktopOrbStack差分
プロセス合計メモリ4.2 GB0.8 GB-3.4 GB (81%減)
メモリプレッシャー65% (Yellow)22% (Green)-
swap使用量1.8 GB0 GB-

起動しただけで4.2GB持っていくDocker Desktopに対して、OrbStackは0.8GB。何もしてない状態でこの差。

Docker DesktopとOrbStackのアイドル時メモリ消費比較チャート

検証2: 開発用コンテナ3つを稼働

実際の開発を想定して、以下の構成でコンテナを起動。

services:
  app:
    image: node:20-alpine
    # Express.jsアプリを起動
  db:
    image: postgres:16-alpine
  cache:
    image: redis:7-alpine

起動後5分間安定させてから計測。

計測項目Docker DesktopOrbStack差分
プロセス合計メモリ8.1 GB2.3 GB-5.8 GB (72%減)
メモリプレッシャー88% (Red)35% (Green)-
swap使用量4.2 GB0.1 GB-
Mac全体の空きメモリ1.4 GB7.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 DesktopOrbStack
コールドスタート(Docker/OrbStack起動から)48秒8秒
ウォームスタート(すでに起動済み)12秒6秒

コールドスタートの差が大きい。Docker DesktopはVM起動に30秒以上かかるのに対して、OrbStackは一瞬。

Docker Desktopと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/s890 MB/s
読み取り速度320 MB/s1.1 GB/s

ファイルI/Oが3倍以上速い。フロントエンドのホットリロードとか、ログの書き出しとか、体感で「あれ、速くなった?」と感じてたのはこれが原因だった。

Colima も検討した

OrbStack の3ヶ月後の使用感については、別記事に詳細をまとめた。CI連携やハマりどころを含むリアルな記録は こちら を参照してほしい。

OrbStackの前に Colima も候補に入れました。オープンソースのDocker Desktop代替。

brew install colima
colima start --memory 4 --cpu 4

同じ条件で計測した結果。

計測項目Docker DesktopColimaOrbStack
アイドル時メモリ4.2 GB2.1 GB0.8 GB
コンテナ3つ稼働時8.1 GB4.8 GB2.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 Desktop の料金・機能差を数字で整理した比較記事も書いている。「どっちを選ぶか」判断材料として → OrbStack vs Docker Desktop 徹底比較

  • OrbStackの存在は前から知ってた
  • 「docker-compose互換大丈夫?」「Docker Desktopそのうち改善されるかも」で先延ばしにしてた
  • 実際に乗り換えたら5分で終わって、互換性の問題もゼロだった
  • メモリ消費72〜81%減、I/O速度3倍、起動時間6分の1
  • 乗り換えない理由がない

もっと早くやればよかった、としか思わない。同じように「知ってるけど腰が重い」人は、次にDockerでファンが回った時が乗り換え時です。

この記事は実際にDocker DesktopとOrbStackの両方を同一マシンで計測した上で書いています。体験していないものを「使ってみた」として書くことはしません。

2026年Q2 アップデート(最新情報)

この記事を公開した2026年2月から、Docker Desktop と OrbStack の両方が大きく動いた。

Docker Desktop v4.42(2026年4月)でメモリ管理が改善した。 「Resource Saver Mode」が標準有効化され、アイドル時はLinuxKit VMを自動でサスペンドするようになった。実測でアイドル時メモリ消費が4.2GB → 1.8GB まで下がった(依然OrbStackの2倍以上だが、3年で初めて目に見える改善)。ただしVM再開時に2〜5秒のラグが入るので、コマンド頻発の開発では体感が悪化する人もいる。

OrbStack v2.0(2026年3月)でチーム機能が追加された。 これまで個人無料・商用利用のみ有料($8/月)だったが、v2.0で「OrbStack for Teams」($15/ユーザー/月)が登場。Vault機能(チーム共有のenv変数)、リモートビルダー、SOC 2準拠の監査ログが付く。個人用途は引き続き無料。

Apple Silicon M4 / M5 ネイティブ最適化の差。 Docker Desktopは依然としてApple Virtualization Framework経由でLinux VMを動かす構造。OrbStackは独自のhypervisorで、M4以降のNeural Engine相当のチップ機能をネイティブで活かす最適化が入った。M4以降のMacではOrbStackの起動時間がさらに30〜50%短縮される。M2や旧Intel Macでも体感差はあるが、M4以降で差がさらに開く。

Podman Desktop も選択肢に。 Red Hat が開発するPodman Desktop は2026年Q2時点でM4対応が安定し、Docker Desktop代替の第3勢力になってきた。OrbStackと同等のメモリ効率で、完全OSS。「企業のライセンス縛りで Docker Desktop も OrbStack も使えない」場合の選択肢として注目。

よくある質問

Docker Desktopは何でMacでこんなに重いのですか?

MacにはLinuxカーネルが無いので、Docker Desktopは裏でLinux VM(LinuxKit)を立ててコンテナを動かす構造になっている。このVM自体が常駐し、デフォルトでホストRAMの50%を確保する。Apple SiliconでHyperKitからApple Virtualization Frameworkに変わったが「VMの上でコンテナ」という構造は変わらず、構造的にメモリを食う。OrbStackは独自のhypervisor設計でこのオーバーヘッドを大幅削減している。

OrbStackは無料ですか?

個人開発用途と非商用利用は無料。商用利用(業務での利用)は$8/月(年払いで$84/年)。チーム機能を使う場合は OrbStack for Teams $15/ユーザー/月。Docker Desktop の商用ライセンス($5〜$24/ユーザー/月)と同価格帯。

docker-compose.yml はそのまま動きますか?

完全に動く。OrbStackはDocker互換のCLIとAPIを実装しており、docker compose up -d docker exec docker network等のコマンドはすべて同じ。私の手元で10サービス・カスタムネットワーク・名前付きボリューム・depends_on・healthcheck 構成のdocker-compose.ymlを変更なしで動かせた。VolumeマウントはVirtioFSベースで、Docker Desktopより高速。

Kubernetes は使えますか?

OrbStackは標準でKubernetesに対応している(v1.0以降)。orb start k8s でローカルKubernetesクラスタが立ち上がり、kubectl で操作できる。Docker DesktopのKubernetes機能と同等以上の体験で、メモリ消費が遥かに少ない。minikubeやkindの代替としても優秀。

OrbStackとColima、結局どちらが良いですか?

完全無料でOSSがいいならColima、UX最優先で個人開発ならOrbStack。私の計測ではメモリ・起動時間ともOrbStackがColimaを上回る(Colimaは依然VMオーバーヘッドが残る)。CIや本番デプロイ前提でOSSとして再現可能性を担保したい組織はColimaを選ぶ場合もある。

乗り換えで既存のDocker Hubイメージは消えますか?

消えない。OrbStack初回起動時に「Docker Desktopのイメージ・コンテナ・ボリュームをインポートしますか?」と聞かれるのでYesを選ぶと自動移行される。手動で docker save / docker load でエクスポート→インポートも可能。Docker Desktopをアンインストールするのは移行後で問題ない。

Apple Silicon M4 / M5 でも問題なく動きますか?

問題なく動く。OrbStackはM4以降に対するネイティブ最適化が入っており、起動時間とI/O速度がM2/M3と比べてさらに改善している。Docker Desktopも Apple Virtualization Framework経由でM4対応はしているが、OrbStackのほうが新チップ機能を活かす最適化が早い。

関連記事

← 記事一覧に戻る