OrbStackはいいぞ
はじめに
株式会社イノベーションでITトレンドEXPOの開発を担当しているTACです。
最近OrbStackを使い始めたので、その概要やDockerDesktopとの比較をした内容をアウトプットします。
OrbStackとは
一言で言うと、MacOS上で動作する軽量かつ高速なDocker Desktopの代替ツールです。
OrbStackの概要
-
特徴1:Docker Desktop よりも高速で軽量
- CPUやメモリの使用量が少なく、バッテリー消費も抑えられる。
-
特徴2 : 既存のDockerコマンドやdocker-composeファイルがそのまま使用可能
- 今までと変わらない開発プロセスを実現できる
- 特徴3 : Docker Desktopからの移行も簡単にできる。
- 特徴4 : Kubernetesの実行にも対応している。
といったように、OrbStackは高いパフォーマンスを発揮してくれます。
高いパフォーマンスの理由
じゃあ、なんで高いパフォーマンスを発揮できるのか?という点についてなんですが、
OrbStackはMacOS向けに設計している独自アーキテクチャを採用しています。
そのため、Apple Silicon(M1, M2など)に合わせた最適化によりCPUやメモリの消費を抑えつつ高速に動作することに成功しています。
また、システムリソースの動的管理機能を行っているので、コンテナを使用していない時にはリソースの使用を最小限に抑え、必要な時だけリソースを最大限に活用することができます。
これによりコンテナや仮想マシンを複数同時に稼働させると、CPUやメモリの負荷が高まり、システム全体のパフォーマンスが低下するといったリスクを回避できます。
インストール・セットアップ
さて、という訳でインストール〜OrbStackを動かすまでの流れを記載していきます
STEP1 : OrbStack の公式ページよりダウンロード
ダウンロードする時点で、私はDocker Desktopを最新にアップデートしておいた上で止めて置きました。
バージョンの違いや、OrbStackとDocker Desktop両方立ち上げていることで後で怒られたらいやだなぁ思ったので念の為...
公式ページ:https://orbstack.dev/
STEP2 : OrbStackの起動
起動後、上記のような画面が出てくるのでDocker, Kubernetes, Linuxどれを利用するのか選択します。
今回は、Docker DesktopからOrbStackに移行するので、Dockerを選択します。
これでセットアップは完了です!
STEP3 : 本当に使えるか確認してみる
セットアップが簡単に終わったので、これだけで本当にいいのか。。。?
と疑心暗鬼になったのでちゃんとDockerコマンドが使えるか試してみます。
docker ps
が使えたので、無事にOrbStackが動作しているようです!
(今はコンテナを立ち上げてないので何も表示はされない)
コンテナ立ち上げまでの時間を比較
コンテナ立ち上げまでの時間を比較してみました。
OrbStackの圧勝ですね。
OrbStack | Docker Desktop |
---|---|
4秒 | 25秒 |
OrbStackを使うことのメリット・デメリット
Docker Desktopと比較してのメリデメはそれぞれ以下のようになっているかなと思います。
メリット
-
高いパフォーマンス
- Docker Desktopと比較してコンテナの起動や操作等が高速
-
リソース効率の向上
- CPUやメモリの使用量が最適化され、バッテリー消費も抑えられている
-
Docker CLIとの互換性
- 現在の開発プロセスを変更することなく移行できる
デメリット
-
情報が不足している
- 歴史が浅いこともあり情報源が多くはありません
- 開発を行う上で、OrbStack絡みのエラーが起きた時に解決が起きた際、解決まで時間がかかってしまう可能性があります
-
MacOSでしか使えない
- これが最大のデメリットかもしれないですね。。。
-
Kubernetesのサポート不足
- Kubernetesで開発する際に、一部サポート不足している箇所が見受けられるようです。
そんなわけで、MacOSユーザーで、Kubernetesを使用していないプロダクトに関わっている人には全体的にOrbStackをオススメできるかなと思います。
さいごに
本記事と同じ内容を社内のLT会にて発表したのですが、嬉しいことに私の発表の後、社内でDocker DesktopからOrbStackへ移行した人が増えたようです。
特に、プロダクトを兼任している人から好評でした。プロダクトを兼任しているとコンテナを複数立ち上げたり、コンテナの削除・立ち上げを行い機会が多いのでOrbStackを使うことでストレスなく開発を進めていけたようです。
最後まで読んでいただきありがとうございました。
Discussion