Closed9

OrbStackを調べる

dojinekodojineko

特徴

https://docs.orbstack.dev/architecture

  • WSL2と同じく、Linuxアプリケーションを実行する最低限のVMを用意することで実現されている
    • Colima が lima を使用するのと様式は同じだが、OrbStack 独自のエンジンが使用されている
  • Docker 機能本体は組み込みの VMとは別に Docker エンジンが組み込まれている
    • シームレスにVMと統合されているので気になるタイミングは殆どないとされている
    • Docker Desktop とは逆にモノリシックな実装にしているため高速に動作できるということらしい
  • VirtioFS の統合がサポートされており、macOS 上のファイルにも高速にアクセスできる
  • Finder に Docker 環境と Linux 環境それぞれのファイルに簡単にアクセスできるように、ドライブがマウントされる
  • Linux VM をサポートしているので、Intel x86 向けのプログラムを実行できるほか、Rosetta2 の統合もサポートしている。Apple Silicon で動作する macOS ではいずれかの手段を選択できる
  • macOS上で動作するフロントエンドアプリは、Swift で構築されており、省メモリで高速に動作する
dojinekodojineko

ベンチマーク

https://docs.orbstack.dev/benchmarks

  • Docker DesktopColima との比較が公開されている
    • 2秒で環境が起動する (Docker Desktop: 15秒, Colima: 20秒)
    • アイドル時のCPU利用率は0.1% (Docker Desktop: 25%, Colima: 2%)
    • ネットワークスループットは48Gbps (Docker Desktop: 2.5Gbps, Colima: 2.6Gbps)
      • ※ 手元で確認したところ、OrbStack: 49Gbps、Colima: 3.66Gbps となった
    • 起動直後に使用するメモリは687MiB (Docker Desktop: 8GiB, Colima: 1GiB)
  • 高速に動作することを手元で再現するコマンドもいくつか公開されている
dojinekodojineko

インストール方法

公式ページからパッケージを取得する他 Homebrew を使用する方法もある。

brew install orbstack
dojinekodojineko

基本操作

# 起動する
orbctl start
 
# 起動した環境を一覧にする
orbctl list
 
# 指定の環境を停止する
orbctl stop <ID/NAME>
 
# Docker を含めたすべての Linux 環境を終了する
orbctl shutdown
 
# ヘルプを表示
orbctl help
dojinekodojineko

Docker機能の使用方法

Image

https://docs.orbstack.dev/docker/

  • インストール後、Docker機能を有効にすると基本的な設定が全て入った状態になる。
  • docker context ls を実行すると orbstack の設定がすでに入っていることがわかる。
docker context ls
NAME         DESCRIPTION          DOCKER ENDPOINT                  ERROR
default      (...)                unix:///var/run/docker.sock
orbstack *   OrbStack             unix:///Users/*****/.orbstack/run/docker.sock
dojinekodojineko

LinuxVM機能の使用方法

Image

https://docs.orbstack.dev/machines/

  • LinuxVM機能では15種類のディストリビューションからOSを選択してLinux環境を構築できる
    • GUIを使用する他、orb もしくは orbctl を使用することもできる
# orb VM を作る
orbctl create ubuntu
 
# orb VM のシェルを取る
orb
 
# orb VM 上でコマンドを実行する
orb uname -a
 
# SSH で orb VM にログイン (セットアップ時に自動で追加されている)
ssh orb
dojinekodojineko

メモ

  • インストール直後からほぼ何もせず使えるようになるのが良いポイント
  • 初回の起動速度や iperf3 を使用したネットワークスループットの確認は OrbStack が優位であった
  • Colima は Alpine をカスタマイズした環境がベースだが、それ以外の OS を選択できるのも良い
dojinekodojineko

おまけ

  • Orbstack と Colima のスペックを CPU:10, MEM:8GB, Rosetta有効に揃えて、Go製の簡単なWebアプリを作ってベンチマークを取ったところ、Colimaのほうがスループット良い結果になった。
# OrbStack の場合
❯ bombardier --fasthttp -d 10s -c 150 'http://localhost:3000/'
Bombarding http://localhost:3000/ for 10s using 150 connection(s)
Done!
Statistics        Avg      Stdev        Max
  Reqs/sec     44397.83    5297.60   56868.84
  Latency        3.38ms   682.09us    45.46ms
  HTTP codes:
    1xx - 0, 2xx - 444038, 3xx - 0, 4xx - 0, 5xx - 0
    others - 0
  Throughput:     7.75MB/s
 
# Colimaの 場合
❯ bombardier --fasthttp -d 10s -c 150 'http://localhost:3000/'
Bombarding http://localhost:3000/ for 10s using 150 connection(s)
Done!
Statistics        Avg      Stdev        Max
  Reqs/sec     52652.97    5195.79   63945.44
  Latency        2.85ms   446.16us    23.39ms
  HTTP codes:
    1xx - 0, 2xx - 526535, 3xx - 0, 4xx - 0, 5xx - 0
    others - 0
  Throughput:     9.19MB/s
このスクラップは2023/06/18にクローズされました