OrbStack 設定最適化ガイド 2026 — 移行後にやるべきチューニング全12項目
OrbStack導入直後のデフォルト設定は最適ではない。メモリ上限・VirtioFS・ビルドキャッシュ・ローカルドメイン・Rosetta設定まで、移行後にやるべき12項目を実測データ付きで解説。
エンジニアのゆとです。
「OrbStackに乗り換えたらすごく軽くなった」で終わっている記事が多い。でもデフォルト設定のままでは半分も性能を出し切れていない。
Docker Desktopから移行した直後に設定すべき項目を、優先度順に12個まとめた。設定変更で体感できる差が出るものから書いていく。
1. メモリ上限を適切に設定する
OrbStackはデフォルトでメモリを動的に確保・解放する設計になっているが、上限がデフォルト8GBのまま使っているケースが多い。
MacのRAMに応じた推奨設定:
| RAM | 推奨メモリ上限 |
|---|---|
| 16 GB | 6 GB |
| 32 GB | 12 GB |
| 64 GB | 24 GB |
設定方法:
# コマンドで設定
orb config set memory 6144 # 6GB(MiB指定)
# または Preferences → General → Memory から設定
重要なのは「OrbStackが必要分だけ使う」という設計で、上限を設定しても常にその分消費するわけではない。上限はあくまで天井値。
設定後はアクティビティモニタの「OrbStack Helper」の最大値が下がっているのを確認できる。
2. VirtioFSを有効にする(File Sync最適化)
ホストマウント(-v ./src:/app/src)を使うプロジェクトで最も体感差が出る設定。
OrbStack 1.6以降、VirtioFSを使った高速ファイル同期がオプションで利用可能になっている。デフォルトはFUSEベースだが、VirtioFSに切り替えるとホストマウントの遅延が最大40%改善する。
# Preferences → General → "File Sync Optimizations" をオン
# またはコマンド
orb config set rosetta true # Apple Silicon必須
Preferences画面: General → “Use fast file sharing (experimental)” を有効化。
有効後は docker compose exec app ls のようなファイル操作コマンドの応答速度が変わる。特にNext.jsのホットリロードが体感で速くなる。
3. Rosettaを有効にする(Apple Siliconのみ)
Apple Silicon MacでIntelイメージ(linux/amd64)を動かす機会があるなら、Rosettaを有効にする。
orb config set rosetta true
Preferences → General → “Enable Rosetta” からも設定できる。
Rosettaが無効の場合、linux/amd64 イメージはQEMUエミュレーションで動く。速度差は10倍以上。古いCI環境と同じイメージを使ってテストしたい場合など、Rosettaがないとまともに動かない。
ARM向けの公式イメージが存在しないツール(古いDBドライバ、レガシーサービスなど)でも恩恵がある。
4. CPU上限を設定する
デフォルトはCPUを制限しない設定になっている。ビルド中に全CPUを使われてUIがカクつく場合は上限を設定する。
# CPUコア数の75%に制限する例(M3 Max 16コアなら12コア)
orb config set cpu 12
# または全体の割合で指定(0.0〜1.0)
# orb config set cpu_limit 0.75
開発中に「ビルドしたらMacが重くなった」という場合はここを調整する。制限を入れるとビルド時間が若干伸びるが、他の作業への影響がなくなる。
5. ビルドキャッシュを管理する
OrbStackはDockerのビルドキャッシュをそのまま引き継ぐ。気づかないうちにビルドキャッシュが10GB以上になっているケースがある。
# 現在のディスク使用量確認
docker system df
# ビルドキャッシュだけ削除(コンテナ・イメージは残る)
docker builder prune
# 全部クリア(核オプション)
docker system prune -a --volumes
OrbStackのダッシュボード(Containers → Volumes)からもvolume単位の使用量を確認できる。
定期的に実行するエイリアスを設定しておくと管理が楽になる:
# ~/.zshrc に追加
alias dclean="docker builder prune -f && docker system df"
6. ローカルドメインを設定・活用する
OrbStackは各コンテナに .orb.local ドメインを自動割り当てする。この機能はデフォルトで有効だが、使い方を知らないエンジニアが多い。
docker compose up でサービスが起動した状態で確認:
# 割り当てられたドメインを確認
docker inspect <container_id> | grep orb.local
# または OrbStack ダッシュボード → Containers → Domains
割り当てられるドメインのパターン:
# プロジェクト名_サービス名.orb.local
myapp_app.orb.local → http/https アクセス可能
myapp_db.orb.local:5432 → DB接続可能(postgres://...)
これを使うと localhost のポート番号管理が不要になる。複数のプロジェクトを同時に動かしてもドメインで区別できる。
HTTPSで動かしたい場合は追加設定不要。OrbStackが自動でSSL証明書を発行する(ローカル信頼済み)。
CLAUDE.mdには localhost:3000 より .orb.local ドメインを書いておくと、git worktree環境でポートが変わっても参照が壊れない。
7. named volumeをルーティングする
コンテナ内でのファイルI/Oを最大化するには、/Users/... のホストマウントを経由しないnamed volumeを使う。
# named volumeの保存先を確認
ls ~/OrbStack/docker/volumes/
node_modules や .next、.venv などのキャッシュ系ディレクトリをnamed volumeにすると、ホストとのファイル同期コストが消える。前の記事で書いたDocker Compose設定と組み合わせると効果が高い。
# docker-compose.yml
volumes:
node_modules:
driver: local
driver_opts:
type: none
o: bind
device: ${HOME}/OrbStack/docker/volumes/${COMPOSE_PROJECT_NAME}_node_modules
~/OrbStack/docker/ 配下はコンテナのLinuxネイティブパスに直接マップされるため、ホストマウントより高速になる。
8. orb stats でボトルネックを特定する
どのコンテナがリソースを食っているか、定期的に確認する習慣をつける。
# Docker の stats と同じ感覚で使える
orb stats
# 特定コンテナのみ
orb stats myapp_db
出力例:
CONTAINER CPU % MEM USAGE / LIMIT NET I/O
myapp_app 0.2% 312MB / 6.1GB 1.2GB / 800MB
myapp_db 1.8% 890MB / 6.1GB 180MB / 250MB
myapp_redis 0.0% 28MB / 6.1GB 12MB / 8MB
DBが CPU 20%以上を恒常的に使っているなら、クエリの最適化が必要。myapp_app がメモリ2GB超えてきたら、Next.jsのメモリリークを疑う。
9. コンテナの自動停止を設定する
使っていない時間帯にコンテナを動かし続けると、バッテリーとメモリの両方に影響する。
OrbStack単体では自動停止機能を持っていないが、以下のスクリプトで代替できる:
#!/bin/bash
# ~/bin/docker-suspend.sh
# 使い方: 作業終了時に実行
# 全コンテナを一時停止
docker compose -f ~/Projects/myapp/docker-compose.yml stop
# 翌朝の再開
# docker compose -f ~/Projects/myapp/docker-compose.yml start
macOSのショートカット(.command ファイル)やAutomatorと組み合わせて、「Macをスリープさせる前に実行」するフローを作っておくとバッテリー持ちが改善する。
10. Dockerログの保存場所を確認・管理する
OrbStackのDockerログはデフォルトで ~/Library/Group Containers/ 配下に保存される。長期運用で肥大化することがある。
# OrbStack関連のディスク使用量を確認
du -sh ~/Library/Group\ Containers/com.docker.docker/ 2>/dev/null
du -sh ~/.orbstack/ 2>/dev/null
# コンテナのログをフラッシュ
# (コンテナを再作成すると古いログが消える)
docker compose down && docker compose up -d
ログサイズに上限を設定:
# docker-compose.yml
services:
app:
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
これでコンテナあたりのログが最大30MB(10MB × 3ファイル)に収まる。
11. BuildKitを有効にする(デフォルト確認)
OrbStack 1.x以降はBuildKitがデフォルトで有効になっているが、古い設定ファイルが残っているとオフになっているケースがある。
# BuildKitが有効か確認
docker buildx version
# 明示的に有効化
export DOCKER_BUILDKIT=1
# ~/.zshrc に恒久設定
echo 'export DOCKER_BUILDKIT=1' >> ~/.zshrc
BuildKitが有効だとマルチステージビルドのキャッシュ効率が上がり、差分ビルドが高速になる。RUN 命令の並列実行も効く。
12. orb CLIのエイリアスを整備する
OrbStack固有の操作はコマンドで管理できる。よく使う操作をエイリアスにしておく。
# ~/.zshrc に追加
alias orbs="orb stats" # リアルタイムリソース確認
alias orbr="orb restart" # OrbStack再起動
alias orbclean="docker system prune -f" # 不要リソース削除
alias orbdf="docker system df -v" # ディスク使用量詳細
# git worktree + docker compose を組み合わせた作業開始コマンド
function dev() {
local branch=${1:-main}
local port=${2:-3000}
git worktree add /tmp/dev-${branch} ${branch}
cd /tmp/dev-${branch}
APP_PORT=${port} docker compose up -d
echo "起動完了: http://localhost:${port}"
}
まとめ
優先度順に再掲する:
| 優先度 | 項目 | 効果 |
|---|---|---|
| 高 | 1. メモリ上限 | 全体的なメモリ効率 |
| 高 | 2. VirtioFS | ホストマウントのI/O速度 |
| 高 | 3. Rosetta(Apple Silicon) | amd64イメージの実行速度 |
| 中 | 5. ビルドキャッシュ管理 | ディスク節約 |
| 中 | 6. ローカルドメイン | 開発の利便性 |
| 中 | 7. named volume | コンテナ内I/O速度 |
| 低 | 4. CPU上限 | ビルド中の干渉防止 |
| 低 | 8〜12 | 運用品質の向上 |
OrbStack移行直後は「軽くなった」で満足しやすい。でも上の設定を全部入れると、さらに体感が変わる。特にVirtioFSとnamed volumeの組み合わせは、大きなコードベースを扱うほど効果が出る。


