さよならDocker Desktop:macOSでOrbStackをインストールしてワークフローを高速化する方法

Virtualization tutorial - IT technology blog
Virtualization tutorial - IT technology blog

現実的な問題:深夜2時にDocker Desktopに悩まされる時

本番環境のバグを深夜に急いで修正しなければならないとします。エラーを再現するために、6つのコンテナで構成されるマイクロサービス群を起動する必要があります。Docker Desktopを開いて…ひたすら待ちます。ファンが唸りを上げ始め、16GBのRAMは赤信号、アプリは「Docker Desktop is starting…」という状態のまま2分間も固まっています。

このような状況は非常によくあります。macOS上のDocker Desktopは、コンテナを1つも実行していなくても、通常少なくとも2〜3GBのRAMを占有します。バックエンドエンジニアやDevOps担当者にとって、数十個のChromeタブやVS Codeを開いている中で、これほどのリソース浪費は苦痛でしかありません。

なぜmacOS上のDockerはこれほど重いのか?

DockerはもともとLinuxカーネル上で動作するように設計されています。macOSで動かすには、中間に仮想マシン(VM)を構築する必要があります。Docker Desktopは、gRPC FUSEやVirtioFSといったファイル同期のための煩雑なサービスを多く詰め込みすぎています。

この同期メカニズムこそが、しばしばI/Oのボトルネックとなります。もしあなたが、node_modules内に数千個の小さなファイルを持つPHP/LaravelやNode.jsのプロジェクトを動かしているなら、イメージのビルドが目に見えて遅くなるでしょう。npm installコマンド一つとっても、ホストマシンで直接実行するのに比べて2倍の時間がかかることもあります。

一般的な代替案とその限界

最適なソリューションを見つける前に、私は他の多くのツールを試しました:

  • Colima: オープンソースで比較的軽量ですが、ネットワーキングが不安定なことがあります。静的IPの設定は初心者には少し厄介です。
  • Vagrant: 重すぎます。単にいくつかのDockerコンテナを実行するためだけというよりは、一貫した開発環境を構築するのに向いています。
  • Tweak Docker Desktop: 設定でリソースを制限するのは、あくまで一時しのぎに過ぎません。バックグラウンドプロセスは依然としてCPUを大幅に消費します。

OrbStack:信じられないほどのスピード

OrbStackはSwiftで書かれたネイティブアプリケーションで、Apple Silicon(M1, M2, M3)チップに深く最適化されています。Docker Desktopを完全に置き換えるだけでなく、Linux仮想マシンの管理も兼ね備えています。最大の魅力は、OrbStackが起動して準備が整うまで2秒もかからないことです。

待機時のRAM消費量はほぼゼロです。これは、Docker Desktopの最低1.5GBという数字と比較すると、信じられないような数値です。

OrbStackの最速インストール方法

公式サイトからインストーラーをダウンロードするか、Homebrewを使ってコマンド一行でインストールできます:

brew install --cask orbstack

初回起動時、OrbStackはDocker Desktopからの全データの移行(migrate)を提案します。確認ボタンを押すだけです。完了後は、Docker Desktopを安心してアンインストールし、約5〜10GBのディスク容量を解放できます。

OrbStackでDockerを使用する

OrbStackは、既存のdockerdocker-composeコマンドと100%の互換性があります。習慣を変えたり、新しいコマンドを覚えたりする必要はありません。すべてがスムーズに動作します:

# Nginxコンテナを試運転する
docker run -d -p 8080:80 --name my-web nginx

# ステータスを確認する
docker ps

すぐにlocalhost:8080にアクセスできます。OrbStackはネットワーキングをスマートに処理し、複雑な設定なしでホストマシンとコンテナ間の双方向接続を可能にします。

超軽量なLinux仮想マシンの管理

Dockerにとどまらず、OrbStackはUbuntu、Debian、Arch Linuxなどを一瞬で実行することもサポートしています。リモートサーバーにSSH接続せずに、Ubuntu上でシェルスクリプトを素早くテストしたい場合には、これが最適の選択肢です。

新しい仮想マシンを作成するには、以下のコマンドを使用します:

# Ubuntu仮想マシンを素早く作成する
orb create ubuntu my-ubuntu

# 仮想マシンのターミナルにアクセスする
orb -m my-ubuntu

この Linux環境では、自由にapt installが可能です。特に、macOS上のファイルには/mnt/macから直接、非常に高速にアクセスできます。

OrbStackが完全に優れている4つの理由

  1. ファイルマウントの速度: OrbStack独自のテクノロジーにより、ファイルの読み書き速度はホストマシンと同等です。Docker Desktopで5分かかっていたプロジェクトのビルドが、通常は約2分に短縮されます。
  2. バッテリーの節約: 余計なプロセスが走らないため、MacBookの温度上昇が抑えられます。モバイル環境での作業時、バッテリー駆動時間が1〜2時間延びることもあります。
  3. ミニマルなインターフェース: OrbStackのダッシュボードは非常にクリーンです。各コンテナのCPU/RAM使用率をリアルタイムで監視でき、動作が重くなることもありません。
  4. ローカルドメイン: 各コンテナには[container-name].orb.local形式のドメインが割り当てられます。サービス間の接続が非常に自然になります。

Lời kết

6ヶ月間使用してきましたが、Docker Desktopに戻ろうと思ったことは一度もありません。OrbStackはmacOSにおけるパフォーマンスの問題を真に解決してくれました。マシンのフリーズにイライラするのではなく、コードに集中させてくれます。

Macを使っているなら、ぜひ今日OrbStackを試してみてください。そのスピードの違いに驚くはずです。大多数の開発作業において、OrbStackは単に優れているだけでなく、期待以上の速さを提供してくれます。

Share: