Docker DesktopからOrbStackに3ヶ月乗り換えた結果レポート — メモリ・CI連携・ハマりどころの実測記録

Docker DesktopからOrbStackに3ヶ月乗り換えた結果レポート — メモリ・CI連携・ハマりどころの実測記録

Docker Desktop から OrbStack に乗り換えて3ヶ月が経過。メモリ使用量の実測値・Docker Composeの互換性・GitHub Actions連携・日常業務でのパフォーマンス変化を正直にレポート。移行を迷っている人向けの実体験記録。

エンジニアのゆとです。

「OrbStackが良いのはわかった。でも乗り換えて本当に問題ないの?」

この疑問に答えられる人が少ないのは、実際に移行して3ヶ月以上使い続けた人が少ないからだと思う。乗り換えてすぐの記事はたくさんあるが、3ヶ月後の実態はあまり見かけない。

自分は2025年12月末にDocker Desktopから完全移行して、2026年4月時点で3ヶ月以上使い続けている。この記事はその実体験のレポートだ。


移行前の状況

移行を決めた直接のきっかけは、MacBook Pro M3 16GBでの作業中にメモリ不足が頻発したことだった。

当時の環境:

  • Docker Desktop: コンテナ5〜7個常時起動(Next.js開発サーバー、PostgreSQL、Redis、Nginx、mock APIサーバー等)
  • 常駐アプリ: Chrome 20タブ前後、VSCode、iTerm2、Slack、Figma

この状態でDocker Desktopを起動すると、アクティビティモニタのメモリプレッシャーが常に黄色か赤だった。

Docker Desktopの設定で「Memory: 4GB」に制限していたが、アイドル状態でも3.5GB前後を消費していた。


移行手順と所要時間

移行は思っていた以上に簡単だった。

brew install orbstack

OrbStackを初起動すると「Docker Desktopのコンテナとイメージをインポートしますか?」というダイアログが出る。Yesにするだけで、既存のコンテナ・イメージ・ボリュームが移行される。

所要時間はインポートするイメージのサイズによるが、自分の環境(合計12GB程度)で約15分だった。

移行後の最初の動作確認:

docker compose up -d
docker ps

どちらも問題なく動いた。docker コマンドは OrbStack が引き取り、Docker Desktop のCLIと同じように使える。

Docker Desktopはアンインストールせずしばらく残しておいた。何かあったときの逃げ道として。結局2週間後に削除した。


3ヶ月間のメモリ使用量実測データ

移行後、毎朝の作業開始時にアクティビティモニタでメモリ使用量を記録した。

コンテナ構成は移行前と同じ(5〜7個常時起動)。

計測タイミングDocker Desktop時代OrbStack移行後差分
コールドスタート直後3.4 GB0.7 GB-2.7 GB
コンテナ5個起動後7.2 GB2.1 GB-5.1 GB
8時間作業後(コンテナ変化なし)8.8 GB2.4 GB-6.4 GB
ピーク時(コンパイル中)12.1 GB5.3 GB-6.8 GB

Docker Desktopの「8時間後に増える」現象はOrbStackでは発生しなかった。Docker Desktopはコンテナが解放したメモリをホストに返さず、時間が経つにつれメモリ使用量が増加していく問題がある。OrbStackにはこの問題がない。

16GBのMacで5GB以上の余裕が生まれた。Figmaを開いても、Chromeのタブを40枚開いても、メモリプレッシャーが黄色になることはほぼなくなった。


Docker Compose の互換性

移行前に一番心配していたのはdocker-compose.ymlの互換性だった。

結論から言うと、複数のリポジトリで使っていたdocker-compose.ymlのうち、書き換えが必要だったものはゼロだった。

テストした主なパターン:

healthcheck の設定:

healthcheck:
  test: ["CMD", "pg_isready", "-U", "postgres"]
  interval: 10s
  timeout: 5s
  retries: 5

depends_oncondition:

depends_on:
  db:
    condition: service_healthy

カスタムネットワーク:

networks:
  backend:
    driver: bridge

ボリュームマウント:

volumes:
  - ./src:/app/src
  - postgres_data:/var/lib/postgresql/data

すべて動いた。一つも変更しなかった。


ホストマウントのファイルI/O

Next.jsの開発サーバーをDockerコンテナ内で動かしているとき、ホットリロードの速度が体感で変わった。

計測方法: time docker exec -it frontend sh -c "find /app/src -name '*.ts' | wc -l" の実行時間を5回計測して平均。対象は約1,200ファイルのTypeScriptプロジェクト。

Docker DesktopOrbStack
平均実行時間4.8秒1.2秒

ファイル変更→ホットリロード完了の時間も体感で半分以下になった。数字を出していないが、「変更を保存してブラウザを見たら更新済み」という感覚になった。以前は「保存→1〜2秒待つ→更新」というリズムだったが、今は「保存→見る→更新済み」という感覚だ。


GitHub Actions のCI連携

CIでDockerを使っているリポジトリがあり、ローカルのOrbStackとCIのDocker環境(ubuntu上のDockerサービス)が一致するかを確認した。

macOS上のOrbStackで docker build したイメージをローカルでテストして、同じイメージをCIでテストしたとき、違いが出たケースはなかった。

Buildxマルチプラットフォームビルドも確認した:

docker buildx build --platform linux/amd64,linux/arm64 -t myapp:latest .

OrbStackで問題なく動く。DockerHubへのpushも同様。


ハマったポイント3つ

正直に書く。

1. Docker Extensionsが使えなくなった

Docker Desktopには Extension マーケットプレイスがあって、Portainer を使っていた。OrbStack には Extension機能がない。

対応: Portainerをコンテナとして直接起動するようにした。

docker run -d \
  -p 9000:9000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  portainer/portainer-ce:latest

http://localhost:9000 でアクセスできる。機能は同じで、Docker Extensionとして使うよりもこちらの方が独立しているので扱いやすい。

2. MacBook をスリープ中にコンテナが止まることがある

OrbStackのLinuxランタイムがMacのスリープに連動して一時停止する。スリープ解除後にコンテナが再起動するのではなく、止まったままになることがあった。

対応: 開発中はMacのスリープを無効にするか(長時間離席時は手動で止める)、朝一番に docker compose up -d を習慣にした。Docker Desktop でも似た現象が起きることがあったので、これはOrbStack固有の問題とは言い切れない。

3. orb CLIとdocker CLIのパス競合

OrbStackインストール後に orb コマンドが入るが、homebrew管理のツールと PATH の順番によってはどちらが優先されるかが変わることがある。

確認:

which docker
# /Applications/OrbStack.app/Contents/MacOS/xbin/docker が理想

もし docker が Docker Desktop の方を向いていたら、~/.zshrc に以下を追加:

export PATH="/Applications/OrbStack.app/Contents/MacOS/xbin:$PATH"

もともとDocker Desktopを使っていた場合、Docker Desktop側のPATHが残っていることがある。


3ヶ月使って感じた「地味にいい点」

移行記事に書かれにくいが、使い続けてわかったことを書く。

起動が速いのは知っていたが、再起動が速いのも大きかった。仮想マシンの再起動がDockerと比べて非常に速い。設定変更後にOrbStackを再起動する場合でも数秒で終わる。

ドメインアクセス(http://nginx.orb.local)は当初あまり使わないかと思っていたが、複数のサービスを同時に起動するプロジェクトではかなり便利だった。ポート番号を覚えなくて済む。

CPU使用率もアイドル時は低い。Docker Desktopは起動しているだけでCPUが数%使われることがあったが、OrbStackはほぼゼロだった。これはバッテリー持続時間にも影響した。


逆に戻したくなった場面はあるか

ここを正直に書く。

ない。今のところゼロ。

Docker Extensionsについては代替策があるので、機能的に困ることはなかった。Windows機もないのでチーム統一問題もない。

唯一「Docker Desktopが必要だったかもしれない」と思ったのは、特定のDocker DesktopのGUI機能(コンテナのログをGUIで見る)を同僚が使っていて、スクリーンショットを共有されたときに話が食い違ったシーン。でもそれはOrbStackのGUIでも同等のことができるので、単に慣れの問題だった。


移行をまだ迷っている人へ

乗り換えコストはほぼゼロだ。brew install して初起動するだけで移行が完了する。既存のdocker-compose.ymlは書き換えなくていい。

3ヶ月使って「Docker Desktopに戻りたい」と思ったことがないので、Mac環境でDockerを使っているなら乗り換えを躊躇する理由はあまりないと思う。

商用利用の場合はOrbStack Pro($8/月)が必要。個人プロジェクト・非商用なら無料のまま使える。

OrbStackとDocker Desktopの基本的な機能比較はこちらで詳しく書いた。

記事が見つかりません:

orbstack.dev
OrbStack — Fast, light, simple Docker & Linux macOS向けDocker/Linux環境。個人の非商用利用は永続無料。商用利用はPro $8/月。
← 記事一覧に戻る