OrbStack を使ってみました!

こんにちは、ATOM事業本部のプロダクト開発グループの松尾です。バックエンドを中心に開発を行なっています。 広告媒体の実績値取得やレポートの生成などを中心に開発しています。

最近、日常的に使用していたDocker Desktopが突然起動しなくなるという問題に直面しました。

状況を調査したところ、2025年1月8日頃にMac版Docker Desktopアプリで広範囲にわたる起動障害が発生していたことが分かりました。

公式サイトの対処方法に従い改善を試みましたが、警告ダイアログはすぐに消えたものの、Docker Desktopの起動には依然として成功せず苦戦していました。。。

そこで、代替ツールを探していたところ、「OrbStack」がオススメされていて目に留まりました。 少し触ってみたところ使いやすく感じたので、今回は「OrbStack」について紹介させていただきます。

OrbStackについて

orbstack.dev

OrbStackは、macOS上でDockerコンテナとLinux仮想マシンを高速かつ効率的に実行することが可能です。Docker Desktop代替ツールとして利用することができます。

以下のような特徴があります。

  • 高速パフォーマンス: OrbStackは起動時間が非常に短く、わずか2秒程度で使用可能になります。最適化されたネットワーキングとファイルシステムにより、コンテナの実行やビルドも高速です。
  • リソース効率: CPU使用率とメモリ消費量が低く抑えられており、バッテリー消費も少ないため、長時間の開発作業に適しています。
  • シンプルな操作性: CLIを中心としたインターフェースにより、コンテナと仮想マシンの管理が容易です。
  • 自動化機能: ポートフォワーディングやHTTPS対応など、面倒な設定を自動で行ってくれる機能が充実しています。
  • クロスプラットフォーム対応: Linux仮想マシンやKubernetesのサポートにより、多様な開発環境に対応可能です。

OrbStackのUI

起動した最初の画面で、利用予定の「Docker」 を選択するだけで、すぐに利用可能でした。

最初の画面

画面のUIは以下のような感じでした。

Docker Containers を選択した画面

Docker Desktopと比べるとシンプルかと思います。 機能はあまり多くはないですが、普段の開発では Docker Desktop の機能を持て余していた身としては、必要最低限の機能は十分に揃っているように感じました。

個人的には、右側のパネルにある「Terminal」がGUI上からすぐに開けて便利でした。

OrbStackのCPU負荷

アクティブモニタでアイドル状態のCPU使用率を確認してみましたが、

Docker Desktop:約3~8%

OrbStack:約0.1~1.5%

でした。 アイドル状態では、OrbStackの方がCPU負荷は低そうでした。 また少し負荷をかけた際もOrbStackの方がCPU負荷が低そうに感じました。

Docker Desktop アイドル状態のCPU使用率
OrbStack アイドル状態のCPU使用率

Docker Desktop からの移行方法

Docker Desktopからの移行方法は、2通りあります。

  1. GUIの「Migrate」ボタンを使う
  2. orb migrate docker コマンドを実行する

私は2の方法で行いました。以下のようなログが流れて移行されます。

% orb migrate docker
INFO[0000] Starting Docker Desktop                      
INFO[0000] Gathering info                               
INFO[0000]                                               progress=6.666666666666667
INFO[0018] Migration started                             started=true
....
INFO[0132] Stopping Docker Desktop                      
WARN[0142] Docker Desktop did not stop in time: context deadline exceeded 
INFO[0142] Done

OrbStack から Docker Desktop への切り替え方法

OrbStack から Docker Desktop への切り替え方法についてです。

  1. OrbStack を終了する
  2. docker context list コマンドで確認
% docker context list

NAME            DESCRIPTION                               DOCKER ENDPOINT                                           ERROR
default         Current DOCKER_HOST based configuration   unix:///var/run/docker.sock
desktop-linux   Docker Desktop                            unix:///Users/xxx/.docker/run/docker.sock
orbstack *      OrbStack                                  unix:///Users/xxx/.orbstack/run/docker.sock

3.docker context use コマンドで切り替え

% docker context use desktop-linux
desktop-linux
Current context is now "desktop-linux"

だけで簡単に切り替え完了です。これで Docker Desktop を起動できます。

まとめ

OrbStack を一通り触った後に、再度 Docker Desktop の改善を試みたところ今度は問題なく解消することができ、再び Docker Desktop を利用することができるようになりました。

そのため、どちらを使うことにするか両方触りながらもう少し様子見してから決めるつもりです。ですが、今のところ Docker Desktop より OrbStack の方が全体的に軽くUIもシンプルで使いやすく感じているので、今後はOrbStack をメインで使うことになるかと思っています。

Docker Desktop からの移行や切り替えも非常に簡単なので、ぜひ皆さんも一度使ってみてください。

最後までお読みいただきありがとうございました。