Docker Desktop → OrbStack に乗り換えた

目次

はじめに

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が使えたり、htopcurlなどのツールが使えたりします。
さらに、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 と全く同じように使えるのが良いです。
機能だけでなく、省コストやビルド速度もウリらしいので、しばらく使って確かめようと思います。

  • URLをコピーしました!
目次