🐳

【docker + OrbStack】🐳 macOS(Orbstack)で cAdvisor を使って Docker コンテナをモニタリン

に公開

Docker コンテナの CPU やメモリ使用状況を可視化したい時に便利なのが cAdvisor です。
ただし、macOS + Orbstack の環境では Linux ネイティブとは異なり、cAdvisor の設定にいくつか注意点があります。

この記事では、Orbstack 環境でも cAdvisor を正常に動かし、コンテナの情報を取得できる設定方法を紹介します。


✅ 実行コマンド(Orbstack/macOS 向け)

以下のコマンドをターミナルで実行してください。

docker rm -f cadvisor

docker run -d \
  --name=cadvisor \
  -p 9559:8080 \
  -v /:/rootfs:ro \
  -v /var/run:/var/run:rw \
  -v /sys:/sys:ro \
  -v /var/lib/docker/:/var/lib/docker:ro \
  --privileged \
  gcr.io/cadvisor/cadvisor:latest
  • ポート 9559 をホストに公開します(http://localhost:9559 でアクセス)。
  • --privileged を付けることで、制限された環境下でもある程度の情報を取得できます。
  • Docker のメタデータや API にアクセスするために必要なボリュームをマウントしています。

📊 ブラウザで確認

コンテナ起動後、以下の URL にアクセスしてください:

http://localhost:9559

正常に動作していれば、以下のような情報が表示されます:

  • コンテナ一覧(subcontainers)
  • CPU 使用率グラフ
  • メモリ使用量グラフ
  • ネットワーク使用状況

🛠️ トラブルシューティング

症状 原因・対策
cAdvisor がすぐに停止する (Exited (255)) /sys/fs/cgroup/dev/kmsg など、macOS では存在しないリソースにアクセスしようとして失敗している。不要なマウントは省略するか、--privileged を試す。
コンテナ一覧が表示されない /var/lib/docker/var/run/docker.sock が適切にマウントされていない可能性。Orbstack ではこれらのマウント経路が Linux 環境と異なる点に注意。
cAdvisor の UI は見えるがデータが空白 コンテナ情報の読み取りがブロックされている可能性。--privileged を有効にして再起動してみる。

📌 補足:Orbstack での制限

Orbstack や Docker Desktop(macOS)は Linux 仮想マシン上で Docker を動かしているため、Linux カーネルレベルの情報(cgroup、/sys、/proc など)へのアクセスに制限があります。

そのため、完璧なメトリクスを取るのは難しい場合がありますが、上記の設定で多くのケースでは動作確認できています。


📝 まとめ

  • cAdvisor は Docker コンテナのリソース監視に便利なツール。
  • macOS + Orbstack 環境では、必要なボリュームマウントや --privileged オプションがポイント。
  • http://localhost:9559 にアクセスして UI を確認。
  • 完全なモニタリングを目指すなら Prometheus や Grafana との統合も検討。

Discussion