OrbStack
https://gyazo.com/cdb532965e0ca47b36db53bc83e936d7
Say goodbye to slow, clunky containers and VMs
まとめ
起動やネットワークスループットが高いことが特徴とされている
確認時点(2023-06-18) で パブリックベータ公開中
後に有料化される予定がある
特徴
WSL2と同じく、Linuxアプリケーションを実行する最低限のVMを用意することで実現されている Colima が lima を使用するのと様式は同じだが、OrbStack 独自のエンジンが使用されている Docker 機能本体は組み込みの VMとは別に Docker エンジンが組み込まれている
シームレスにVMと統合されているので気になるタイミングは殆どないとされている
Docker Desktop とは逆にモノリシックな実装にしているため高速に動作できるということらしい
VirtioFS の統合がサポートされており、macOS 上のファイルにも高速にアクセスできる Finder に Docker 環境と Linux 環境それぞれのファイルに簡単にアクセスできるように、ドライブがマウントされる
macOS上で動作するフロントエンドアプリは、Swift で構築されており、省メモリで高速に動作する ベンチマーク
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)
高速に動作することを手元で再現するコマンドもいくつか公開されている
インストール方法
code:sh
brew install orbstack
基本操作
code:sh
# 起動する
orbctl start
# 起動した環境を一覧にする
orbctl list
# 指定の環境を停止する
orbctl stop <ID/NAME>
# Docker を含めたすべての Linux 環境を終了する
orbctl shutdown
# ヘルプを表示
orbctl help
Docker機能の使用方法
https://gyazo.com/ca17784909e869fee258b5ff3cd1f5ca
インストール後、Docker機能を有効にすると基本的な設定が全て入った状態になる。
docker context ls を実行すると orbstack の設定がすでに入っていることがわかる。
code:sh
❯ docker context ls
NAME DESCRIPTION DOCKER ENDPOINT ERROR
default (...) unix:///var/run/docker.sock
orbstack * OrbStack unix:///Users/*****/.orbstack/run/docker.sock
LinuxVM機能の使用方法
https://gyazo.com/5ac7fc1ce3c35212ef6a879ef8d57707
LinuxVM機能では15種類のディストリビューションからOSを選択してLinux環境を構築できる
GUIを使用する他、orb もしくは orbctl を使用することもできる
code:sh
# orb VM を作る
orbctl create ubuntu
# orb VM のシェルを取る
orb
# orb VM 上でコマンドを実行する
orb uname -a
# SSH で orb VM にログイン (セットアップ時に自動で追加されている)
ssh orb
メモ
インストール直後からほぼ何もせず使えるようになるのが良いポイント
初回の起動速度や iperf3 を使用したネットワークスループットの確認は OrbStack が優位であった
Colima は Alpine をカスタマイズした環境がベースだが、それ以外の OS を選択できるのも良い おまけ
Orbstack と Colima のスペックを CPU:10, MEM:8GB, Rosetta有効に揃えて、Go製の簡単なWebアプリを作ってベンチマークを取ったところ、Colimaのほうがスループット良い結果になった。
おおきな差はないので利便性を取る、という選択は有りそう
code:sh
# OrbStack の場合
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の 場合
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