はじめに
OrbStack は、macOS 環境で Docker Desktop の代替として機能する仮想化プラットフォームです。軽量で高速なコンテナおよび仮想マシン管理ツールを提供します。
非商用なら無料で使うことができます。
最近 Docker Desktop から乗り換えたので、調べたことをメモとして残します。
インストール
Homebrew でインストールするのが簡単です。公式のダウンロードページ にはインストーラーも用意されています。
brew install orbstack
GUI の他に、OrbStack バージョンの docker
コマンドや、orb
コマンドなどインストールされます。自分の場合は ~/.local/bin
にシンボリックリンクが張られていました。
$ ls -l ~/.local/bin | grep Orb
lrwxrwxrwx 1 kmizuki staff 53 Jul 9 22:00 docker -> /Applications/OrbStack.app/Contents/MacOS/xbin/docker
lrwxrwxrwx 1 kmizuki staff 61 Jul 9 22:00 docker-compose -> /Applications/OrbStack.app/Contents/MacOS/xbin/docker-compose
lrwxrwxrwx 1 kmizuki staff 76 Jul 9 22:00 docker-credential-osxkeychain -> /Applications/OrbStack.app/Contents/MacOS/xbin/docker-credential-osxkeychain
lrwxrwxrwx 1 kmizuki staff 54 Jul 9 22:00 kubectl -> /Applications/OrbStack.app/Contents/MacOS/xbin/kubectl
lrwxrwxrwx 1 kmizuki staff 49 Jul 9 22:00 orb -> /Applications/OrbStack.app/Contents/MacOS/bin/orb
lrwxrwxrwx 1 kmizuki staff 52 Jul 9 22:00 orbctl -> /Applications/OrbStack.app/Contents/MacOS/bin/orbctl
元の Docker CLI を使っても OrbStack は使えますが、非推奨です。
We recommend stopping Docker Desktop to save resources, and uninstalling its command-line tools to make sure you continue receiving updated versions from OrbStack.
https://docs.orbstack.dev/install#docker-details
GUI を開くと、1 クリックで Docker Desktop から移行できるようになっています。既存のコンテナなどが引き継がれます。
機能 (一部)
Docker Desktop と互換性があるのは当然として、OrbStack 独自の機能で気になるものを抜粋します。
詳しくは公式ページを読んでください。Docker Desktop との比較表 もあります。
Debug Shell
GUI を見ると、Debug という項目があり、ここからコンテナに入ることができます。
実際の画面はこんな感じです。見ての通りシンタックスハイライトが効いています。
それ以外にも、補完が効いたり、vim
が使えたり、htop
やcurl
などのツールが使えたりします。
さらに、Distroless のようなシェルがない minimal なコンテナでも、Debug Shell を起動できます!
Domain Names
起動したコンテナには、<container-name>.orb.local
の形式のドメインが割り振られます。
ポートが自動で認識され、ポート番号を覚える必要がなくなります。
例えば、NGINX のコンテナを起動して、
docker run --rm --name web-server nginx
web-server.orb.local
にリクエストを送ると、ちゃんと動きます。-p 80:80
のようなポートのマッピングも不要です。
$ curl web-server.orb.local
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
また、ブラウザで orb.local
にアクセスすると、起動中のコンテナのドメイン一覧を見ることができます。
Menu Bar App
メニューバーからコンテナの各種操作が行えます。
Services の項目からさらに、コンテナ ID や上で紹介したドメイン名のコピーなどができます。
地味だけど便利です。
Linux Machines
Linux 環境を立ち上げることができます。現時点で 15 個のディストリビューションがサポートされています。
orb
コマンドでシェルに入ることができます。
コンテナとして起動する場合と違い、init システムも使えます。
自分はまだ試していませんが、ホストとファイルを共有することもできます。
おわりに
導入が簡単で、Docker Desktop と全く同じように使えるのが良いです。
機能だけでなく、省コストやビルド速度もウリらしいので、しばらく使って確かめようと思います。