macOSでコンテナ環境といえばDocker Desktopが定番ですが、起動の遅さやリソース消費が気になる場面がありました。
この記事では、Docker Desktopの代替として注目されているOrbStackについて、概要からインストール、実際にコンテナを動かすところまでをまとめます。
OrbStackとは
OrbStackは、macOS向けの軽量・高速なコンテナ実行環境です。ネイティブのSwiftアプリとして実装されています。
macOSでDockerコンテナを動かすには、LinuxカーネルをVM上で動かす必要があります。Docker Desktopも内部的にはLinux VMを立ち上げていますが、OrbStackはこのVM層を独自に最適化し、起動の速さとリソース効率を改善しています。
- 高速起動: 約2秒で起動
- 低リソース消費: バックグラウンドCPU使用率がApple Siliconで0.1%未満
- 動的メモリ管理: 必要に応じてメモリを確保・解放
- 最適化されたファイル共有: VirtioFSによる高速なファイルマウント
Docker CLIとの互換性
OrbStackはDocker Engineを内蔵した環境を提供しています。既存のdockerコマンドやdocker composeコマンドがそのまま使えます。PodmanやLXCのような別系統のツールではなく、Dockerと互換性のある「より軽量な実行基盤」という位置づけです。
OrbStackをインストールすると、docker、docker compose、docker buildxなどのCLIツールも自動的にインストールされます。
OrbStackとDocker Desktopの違い
OrbStackとDocker Desktopの主な違いを整理します。
パフォーマンスとリソース消費の比較
| 項目 | OrbStack | Docker Desktop |
|---|---|---|
| 起動速度 | 約2秒 | 数十秒〜 |
| バックグラウンドCPU | 0.1%未満(Apple Silicon) | 比較的高い |
| メモリ管理 | 動的(必要に応じて確保・解放) | 固定割り当て |
| 初期ディスク使用量 | 10MB未満 | 数GB |
| アプリ実装 | ネイティブSwift | Electron |
| ネットワーク | 高速(独自スタック) | 標準 |
これだけの差が生まれる背景には、アーキテクチャの設計思想の違いがあると推測されます。OrbStackの公式ドキュメントや公開情報から読み取れるポイントを整理します。
- VM層の最適化: Docker DesktopはLinuxkitベースの汎用VMをmacOS/Windows/Linuxで共通利用するのに対し、OrbStackはApple SiliconとmacOS専用に最適化された軽量VMを採用。WSL2と同様の共有カーネルアプローチで余分なオーバーヘッドを排除している
- ファイルシステム: Docker Desktopが標準的なVirtioFSやgRPC-FUSEを使用するのに対し、OrbStackはVirtioFSを基盤にカスタム動的キャッシングを独自実装。公式によればネイティブmacOSの75〜95%のファイルI/O性能を実現している
- x86エミュレーション: Docker DesktopがQEMUベースのエミュレーションを使うのに対し、OrbStackはApple Silicon上でRosettaを利用。macOSネイティブのエミュレーションエンジンにより高速に動作する
- コンポーネント設計: Docker DesktopがElectron(Chromium + Node.js)と汎用コンポーネントの組み合わせであるのに対し、OrbStackはSwift・Go・Rust・Cで目的別にゼロから構築。統合設計により余分な処理レイヤーを削減している
つまり、Docker Desktopが「マルチプラットフォーム対応の汎用設計」であるのに対し、OrbStackは「macOS専用に全レイヤーを最適化した専用設計」であることが、パフォーマンス差の主な要因と考えられます。
機能の違い
| 機能 | OrbStack | Docker Desktop |
|---|---|---|
| Docker Engine | 対応 | 対応 |
| Docker Compose | 対応 | 対応 |
| Kubernetes | 対応 | 対応 |
| Linux VM | 対応(15種類のディストロ) | 非対応 |
| 自動ドメイン名 | 対応 | 非対応 |
| IPv6 | 対応 | 対応(4.42以降) |
| VS Code連携 | 対応 | 対応 |
| Extensions | 非対応 | 対応 |
| Docker Scout | 非対応 | 対応 |
| 対応OS | macOSのみ | macOS / Windows / Linux |
ライセンスと料金の比較
| プラン | OrbStack | Docker Desktop |
|---|---|---|
| 個人利用(非商用) | 無料 | 無料 |
| 商用利用 | Pro: $8/月〜 | Pro: $9/月〜 |
| 大規模組織 | Enterprise(要問い合わせ) | Business: $24/月〜 |
個人の非商用利用はどちらも無料です。商用利用の場合、OrbStackはPro($8/月〜)、Docker DesktopはPro($9/月〜)が必要です。Docker Desktopは従業員250人以上または年間収益1000万ドル以上の企業で有料プランが必須となる点に注意してください。
なお、OrbStackの公式ライセンス条件では、フリーランスや企業での業務利用に加え、OrbStackの利用に関連する業務から年間$10,000以上の収入がある場合もライセンス購入が必要とされています。広告収益のあるブログの検証環境として利用する場合など、利用形態によっては商用利用に該当する可能性があるため、事前に公式のライセンス条件を確認してください。
OrbStackのインストール方法
システム要件
OrbStackの動作にはmacOS 14.0(Sonoma)以上が必要です。Apple SiliconとIntel Macの両方に対応しています。
Homebrewでインストール(推奨)
Homebrewが導入済みなら、1コマンドでインストールできます。
brew install orbstack実行すると、アプリのインストールに加えて、orbコマンドやシェル補完も自動的にセットアップされます。
==> Installing Cask orbstack==> Moving App 'OrbStack.app' to '/Applications/OrbStack.app'==> Linking Bash Completion 'orbctl.bash' to '/opt/homebrew/etc/bash_completion.d/orbctl'==> Linking Fish Completion 'orbctl.fish' to '/opt/homebrew/share/fish/vendor_completions.d/orbctl.fish'==> Linking Zsh Completion '_orb' to '/opt/homebrew/share/zsh/site-functions/_orb'==> Linking Zsh Completion '_orbctl' to '/opt/homebrew/share/zsh/site-functions/_orbctl'==> Linking Binary 'orbctl' to '/opt/homebrew/bin/orbctl'==> Linking Binary 'orb' to '/opt/homebrew/bin/orb'🍺 orbstack was successfully installed!初回起動と初期設定
インストール後、OrbStackを起動すると初期設定ウィザードが表示されます。

「Next」をクリックすると、使用する機能の選択画面になります。Docker、Kubernetes、Linuxの中から使いたいものを選択します(後から変更可能)。

セットアップの途中で、Dockerソケットの互換性向上やコマンドラインツールのインストールのためにパスワードの入力を求められます。

すべてのセットアップが完了すると、OrbStackのメイン画面が表示されます。左側のサイドバーからContainers、Volumes、Imagesなどを管理できます。

公式サイトからインストール
OrbStack公式サイトのダウンロードページから.dmgファイルをダウンロードし、アプリケーションフォルダにドラッグ&ドロップする方法もあります。
Docker Desktop からの移行
Docker Desktopがすでにインストールされている場合、OrbStackは既存のコンテナやイメージの移行をサポートしています。OrbStackを起動すると移行のオプションが表示されます。
ただし、認証情報ストアが異なるため、Docker Hubなどのレジストリには再度ログインが必要になる場合があります。
docker loginインストール後の確認
OrbStackを起動すると、dockerコマンドが使えるようになります。
docker versionOrbStack固有のCLIツールorbもインストールされます。
orb versionDocker Desktopとの共存時の注意
Docker Desktopがインストールされている環境では、dockerコマンドがどちらのエンジンに接続しているかを確認しておきましょう。docker context lsで現在のコンテキストを確認できます。
docker context lsNAME DESCRIPTION DOCKER ENDPOINTdefault Current DOCKER_HOST based configuration unix:///var/run/docker.sockdesktop-linux Docker Desktop unix:///.../.docker/run/docker.sockorbstack * OrbStack unix:///.../.orbstack/run/docker.sock*が付いているコンテキストが現在接続中のエンジンです。OrbStackアプリを起動すると、自動的にorbstackコンテキストが追加・選択されます。手動で切り替える場合は以下のコマンドを使います。
# OrbStackに切り替えdocker context use orbstack
# Docker Desktopに切り替えdocker context use desktop-linuxOrbStackの基本的な使い方
OrbStackのDocker環境は、通常のdockerコマンドをそのまま使えます。特別なコマンドを覚える必要はありません。
コンテナの起動
Nginxコンテナを起動してみます。
docker run -d -p 8080:80 --name my-nginx nginxブラウザでhttp://localhost:8080にアクセスすると、Nginxのデフォルトページが表示されます。
OrbStackでは、コンテナに自動でドメイン名が割り当てられます。上記の例ではhttp://my-nginx.orb.localでもアクセス可能です。ポート番号を覚える必要がなくなるので、複数のコンテナを同時に動かすときに便利です。
コンテナの状態確認・停止・削除
# 実行中のコンテナを一覧表示docker ps
# コンテナを停止docker stop my-nginx
# コンテナを削除docker rm my-nginxDocker Composeで複数サービスを動かす
OrbStackではdocker composeコマンドがそのまま動作します。ここでは、Nginx + PostgreSQL + Adminer の構成を例に試してみます。
プロジェクトの準備
作業ディレクトリを作成し、必要なファイルを用意します。
mkdir orbstack-compose-sample && cd orbstack-compose-samplecompose.yaml の作成
services: db: image: postgres:16-alpine environment: POSTGRES_DB: myapp POSTGRES_USER: myapp POSTGRES_PASSWORD: password volumes: - db-data:/var/lib/postgresql/data
adminer: image: adminer ports: - "8081:8080" depends_on: - db
web: image: nginx:alpine ports: - "8080:80" volumes: - ./html:/usr/share/nginx/html:ro
volumes: db-data:3つのサービスを定義しています。
- db: PostgreSQLデータベース
- adminer: ブラウザで操作できるデータベース管理ツール
- web: Nginxで静的ファイルを配信
表示用HTMLの作成
mkdir html<!DOCTYPE html><html><head><title>OrbStack Test</title></head><body><h1>Hello from OrbStack!</h1></body></html>起動と動作確認
# すべてのサービスをバックグラウンドで起動docker compose up -d
# サービスの状態を確認docker compose ps以下のURLでそれぞれのサービスにアクセスできます。
| サービス | URL | OrbStack自動ドメイン |
|---|---|---|
| Nginx | http://localhost:8080 | http://web.orbstack-compose-sample.orb.local |
| Adminer | http://localhost:8081 | http://adminer.orbstack-compose-sample.orb.local |
Docker Composeの場合、OrbStackの自動ドメイン名は service.project.orb.local の形式になります。project 部分はディレクトリ名が使われます。
Adminerにアクセスしたら、以下の情報でログインできます。
| 項目 | 値 |
|---|---|
| データベース種類 | PostgreSQL |
| サーバー | db |
| ユーザー名 | myapp |
| パスワード | password |
| データベース | myapp |
停止と後片付け
# コンテナを停止・削除docker compose down
# ボリュームも含めて削除する場合docker compose down -vまとめ
- OrbStackはmacOS向けの軽量なDocker実行環境で、ネイティブSwiftアプリとして実装されている
- Docker Engineベースなので、既存の
dockerコマンドやdocker composeがそのまま使える - 起動が速く、リソース消費が少ない。動的メモリ管理によりバッテリー消費も抑えられる
- Docker Desktopからの移行は容易で、コンテナやイメージの引き継ぎもサポートされている
- 個人の非商用利用は無料。商用利用にはProプランが必要
- Kubernetes機能やLinux VM機能も備えているが、これらは別途掘り下げる価値がある
Dockerの知識がそのまま使えるので、Docker Desktop経験者であれば移行のハードルは低いです。開発中のバックグラウンドリソースを減らしたい、起動を速くしたいといった場面で、OrbStackは有力な選択肢になるでしょう。
Docker Desktop重いなぁって思ってた人、OrbStackいいよ!起動2秒はマジで快適なんだ。dockerコマンドがそのまま使えるから、乗り換えも簡単。brew install orbstackするだけだし、まずは試してみて!