OrbStackめちゃいい
概要
OrbStackはmacOSで使用できるDockerコンテナとLinuxを動かすためのソフトウェアです。
私はDocker Desktopの代替として利用を始めました。
割とずっとDocker Desktopでもできることしかやっていなかったのですが、OrbStack特有の機能を使ってみてその便利さに感動したものがあるので紹介します。
自動でポート見つけてくれてHTTPSでアクセスできる
通常、コンテナにHTTPでアクセスするためには-p
フラグでポートを転送する必要がありますし、更にHTTPSでアクセスするためには該当コンテナをHTTPSで待ち受けるように対応するか、あるいはHTTPSで待ち受けるリバースプロキシーを立てる必要があります。
OrbStackならただコンテナを立てるだけで各コンテナに{コンテナ名}.orb.local
というドメイン名が付けられ、このドメイン名でアクセスできます。
更にポートも自動で見つけて転送してくれる上にHTTPSでアクセスできます。
体験してみましょう。
まずMacを購入してOrbStackをインストールしてください!
Mac miniなら94,800円(税込)で購入できそうです!!
次にnginxのコンテナを起動しましょう。
docker run -d --name my-server nginx
それではWebブラウザで https://my-server.orb.local を開いてみましょう。
nginxのウェルカムページにアクセスできましたよね?
ちなみに https://orb.local がポータルみたいになっているので、このページをブックマークしておくのが便利です。
デバッグシェル
distrolessベースのコンテナやmvn spring-boot:build-image
のデフォルト設定で作成されるコンテナはシェルが入っていないので、コンテナの中を探索できません。
OrbStackならエディタや基本的なツールが入ったデバッグシェルを使えます。
こちらも体験してみましょう。
まずMacを購入(省略)
次にdistrolessベースのPythonコンテナを立てましょう。
docker run --rm -it --name my-python --entrypoint python gcr.io/distroless/python3-debian12
シェルやエディタなどが入っていないことも一応確認。
$ docker exec -it my-python sh
OCI runtime exec failed: exec failed: unable to start container process: exec: "sh": executable file not found in $PATH: unknown
$ docker exec -it my-python vim
OCI runtime exec failed: exec failed: unable to start container process: exec: "vim": executable file not found in $PATH: unknown
$ docker exec -it my-python curl https://zenn.dev
OCI runtime exec failed: exec failed: unable to start container process: exec: "curl": executable file not found in $PATH: unknown
デバッグシェルでコンテナに接続します。
orb debug my-python
Welcome to OrbStack Debug Shell!
This shell provides useful commands & tools, making it easy to debug any container (even if minimal).
Use 'dctl' to install and remove packages.
Learn more: https://go.orbstack.dev/debug
root@fcf4f7faee29 /
❯
vim
やcurl
も使えます。
終わりに
OrbStackの便利な機能を紹介しましたが、それ以前にそもそもOrbStackを使い始めたきっかけが「起動がめちゃ速い」ことでして、これが本当に嬉しいです。
そんなわけでMacを使っている方にはOrbStackをオススメします。
Windowsにも欲しい!
Discussion