Oxcart ダウンロード
メニュー

macOSのDockerアプリのメモリ・CPU使用量を実測

コンテナを実行していない状態で、テスト用MacのOxcartは776 MiBを使用しました。OrbStackの792 MiBと同水準で、Docker Desktopの1,745 MiBの半分未満です。監視の負荷も低く、docker statsの連続ストリームによるCPU使用率は、1コアに対してOxcartが1.3 %、OrbStackが3.8 %、Docker Desktopが5.5 %でした。

更新日

測定した内容と方法

3つのアプリを同じMacで実行しました。Apple M5 Max、メモリ36 GiB、macOS 27.2です。それぞれ8 CPU、12 GiBに設定し、専用のコマンドで起動し直して単独で実行しました。ほかのアプリは終了し、プロセスが残っていないことも確認しています。アイドル時の数値は45秒待って安定させた後の60秒間で測定し、アプリ、補助プロセス、Linuxシステムを含むエンジンなど、その製品の全プロセスを集計しました。コンテナの数値はウォームアップ後の5回の測定の中央値で、差が10 %以内なら同水準としています。

Oxcart 0.1.2は2026-10-10に、同梱のdocker 29.9クライアントで測定しました。OrbStack 2.2.3とDocker Desktop 4.94.0は同日のそれ以前に、同じMacと測定環境でdocker 29.4を使って測定しました。各製品はそれぞれのLinuxカーネルを実行します。1台のマシンで製品ごとに1回の測定を行ったもので、研究調査ではありません。測定方法はすべて共通です。

コンテナなしのアイドル時メモリ

コンテナを実行していないときのアプリ、補助プロセス、エンジンのメモリ
アプリアイドル時メモリ
Oxcart 0.1.2776 MiB
OrbStack 2.2.3792 MiB
Docker Desktop 4.94.01,745 MiB

これはコンテナアプリが待機しているだけで使うメモリです。作業の合間や会議中、一日中アプリを開いているノートパソコンでも発生します。OxcartとOrbStackはここでは同水準で、Docker Desktopは2倍以上を保持しています。

コンテナ監視の負荷

ダッシュボード、ターミナルの監視ツール、コーディングエージェントはコンテナの統計を絶えず取得するため、その読み取り負荷は見た目以上に重要です。

20コンテナでのdocker statsの負荷と応答時間
測定項目OxcartOrbStackDocker Desktop
ストリーミング中のdocker statsクライアント1つのCPU使用率1.29%3.81%5.45%
docker stats --no-stream1,038 ms2,050 ms2,054 ms

CPUは1コアに対する割合です。Oxcart 0.1.2は2026-10-10に同梱のdocker 29.9クライアントで測定。OrbStack 2.2.3とDocker Desktop 4.94.0は同日のそれ以前に、同じMacと測定環境でdocker 29.4を使って測定しました。

20コンテナの実行中、Oxcart自身のメニューバー項目の負荷は1コアの0.0004%、1秒当たりのウェイクアップは0.033回です。この数値はアプリのみで、エンジンを含みません。

負荷がある状態:同水準

コンテナが実際の作業を始めると、作業自体が負荷の大半を占めるため、各アプリの数値は近づきます。同じ測定から2項目を示します。

一定のワークロードでのオーバーヘッド(低いほど良い。すべて10 %以内の差)
測定項目OxcartOrbStackDocker Desktop
コンテナ内の1 CPU秒当たりのMac CPU使用量1.10×1.11×1.09×
256 MiBにアクセスするコンテナ当たりのMacメモリ235 MiB266 MiB236 MiB

実際には、CPUがボトルネックとなるビルドやテストのMac CPU使用量は3つのアプリでほぼ同じです。256 MiBを使うコンテナは、Macでもおよそ同量を使います。違うのは作業の前後です。各docker run、stop、後片付けにかかる時間でOxcartがリードしています(Docker Desktopとの比較、OrbStackとの比較)。

作業が終わるとメモリはmacOSへ

Oxcart 0.1.3以降、最後のコンテナが停止してから約30 s後に、OxcartはLinux側を再起動してメモリをmacOSへ返します。最後のコンテナの停止から32 s後に、3,319 MiBから570 MiBへ低下しました(2回目は3,352から579 MiB)。これは実行中のコンテナがないときだけ行われます。処理はバックグラウンドで行われ、再起動中に届いたDockerコマンドは完了を待つだけです。

Oxcart 0.1.3で測定。

自分のMacでコンテナアプリのメモリを測る

  1. 負荷の少ないMacから始めます。 ほかのコンテナアプリを終了し、コンテナを停止して、アプリ起動後に1分待ちます。起動時の処理を落ち着かせるためです。
  2. アプリの全プロセスを探します。 アクティビティモニタで「メモリ」タブを開き、アプリ名を検索します。通常はLinux側を実行するプロセスが最大です。ターミナルではps -axo pid,rss,comm | grep -i <app>で一覧を表示できます。
  3. macOSが計上するメモリを確認します。 アクティビティモニタの「メモリ」列、または各プロセスへのfootprint <pid>を使い、値を合計します。常駐サイズ(RSS)だけでは、共有メモリや圧縮メモリを過大または過小に数えることがあります。
  4. ワークロードの実行中に測定します。 普段のComposeスタックを起動して数分使い、同じ数値を再確認します。docker stats --no-streamはLinux側の各コンテナの使用量を表示します。
  5. 停止後に測定します。 すべてを停止し、1分後にもう一度数値を確認します。これが作業の合間にアプリがアイドル状態で保持するメモリです。

確認したい設定

  • アプリの上限。 各アプリはLinux側が使用できるCPUとメモリに上限を設けています。OxcartではSettings › Resources、またはoxcart config set cpus=6とoxcart config getを使います。値は次回起動時に適用されます。スタックの必要量を大幅に超える上限にしても利点はありません。
  • コンテナごとの上限。 docker runの--memory、--cpus、--pids-limit、またはComposeのmem_limit、cpus、pids_limitを使うと、暴走した1つのサービスがすべてのリソースを使い切るのを防げます。
  • 使っていないものは停止します。 また使うスタックにはdocker compose stop、使わないものにはdocker compose downを使います。Oxcartでは、最後のコンテナを停止することでメモリをmacOSへ返せるようにもなります。
  • 軽い方法で監視します。 スクリプトではdocker stats --no-streamを優先し、コーディングエージェントには生の統計より要約ツールを渡しましょう(AIコーディングエージェント向けDocker)。

よくある質問

MacでDockerはどのくらいメモリを使いますか?

アプリとコンテナの作業内容によります。12 GiBに設定した1台のAppleシリコン Macで、コンテナなしの状態の全プロセスを数えると、Oxcartは776 MiB、OrbStackは792 MiB、Docker Desktopは1,745 MiBでした。コンテナを実行すると、メモリはワークロードに応じて変わります。

Docker Desktopはなぜ大量のメモリを使うのですか?

MacのコンテナアプリはどれもLinuxシステムを実行し、ワークロードがアクセスするメモリはMac上で1つの大きなプロセスとして表示されます。今回の測定ではDocker Desktopのアイドル時の使用量も3つの中で最大で、コンテナなしで1,745 MiBでした。設定でメモリ上限を下げ、不要なコンテナを停止し、同じMacでアイドル時776 MiBだったOxcartなどの代替アプリを比較してみてください。

OxcartはmacOSにメモリを返しますか?

はい。コンテナが何も実行されていないときに返します。Oxcart 0.1.3以降、最後のコンテナの停止から約30 s後にLinux側を再起動し、メモリをmacOSへ返します。リリース前のバージョンでの測定では、最後のコンテナの停止から32 s後に3,319 MiBから570 MiBへ低下しました。実行中のコンテナがない場合にのみ行われます。

コンテナのメモリとCPUを制限するには?

コンテナごとにdocker run --memory 512m --cpus 1.5 …、またはComposeサービスのmem_limitとcpusを使います。Oxcartはdocker updateによるメモリ、CPU、プロセス数の上限変更を適用し、再起動でコンテナが再作成されても維持します。

Oxcartが使えるCPU数とメモリを設定するには?

Settings › Resources、またはターミナルのoxcart config set cpus=4で設定できます。oxcart config getで有効な値とMacの上限を確認できます。新しい値は次回起動時に適用されます。

docker statsはMacを遅くしますか?

docker statsの連続ストリームはどのアプリでもCPUを使います。測定では1コアに対してOxcartが1.3 %、OrbStackが3.8 %、Docker Desktopが5.5 %で、Oxcartが最も低い値でした。20コンテナに対する単発のdocker stats --no-streamはOxcartで1.0 s、ほかの2つの約半分でした。

出典と測定方法

  • Oxcart 0.1.2、OrbStack 2.2.3、Docker Desktop 4.94.0を2026-10-10に同じMac(Apple M5 Max、36 GiB、macOS 27.2)で測定。各8 CPU、12 GiBで、1製品ずつ実行しました。
  • 最後のコンテナ停止後のメモリ返却:Oxcart 0.1.3。
  • メニューバーの負荷:2026-10-09にOxcartで測定。

自分のプロジェクトで Oxcart を試す

60日間無料。その後は1ユーザー・1メジャーバージョンあたり $20。サブスクリプションではありません。

Apple silicon · macOS 26 以降

次に読む

リリースノート

Oxcart 0.1.4

最新リリース

ライセンス機能と各種改善。

  • メールの安全なリンクによるライセンスの有効化。
  • SettingsからライセンスとMacを管理。
  • ライセンスのオフライン検証。
  • パフォーマンス改善、UIの調整、不具合修正。

macOS 26.0以降が必要です

Oxcart 0.1.3

アイドル時のメモリ回収。

  • コンテナが実行されていないときに、VMのメモリを回収。
  • コンテナ、イメージ、ボリューム、ネットワークを保持。

macOS 26.0以降が必要です

Oxcart 0.1.2

コマンドラインツールの統合。

  • Oxcart付属のDockerツールと、すでにインストールされているDockerツールを切り替え。
  • UIの調整。

macOS 26.0以降が必要です

Oxcart 0.1.1

同梱のDockerツールとエージェントの制御。

  • Docker CLI 29.9、Compose 5.6、Buildx 0.38を同梱。
  • Dockerコンテキストとの連携と、キーチェーンでの認証情報の安全な保管。
  • MCPエージェントの接続と、エージェントごとの権限設定・ブロック。

macOS 26.0以降が必要です

Oxcart 0.1.0

Appleシリコン向けのDocker互換コンテナ。

  • Docker CLI、Compose、Buildxとの互換性。
  • 実行環境のコンポーネントを同梱し、オフラインでセットアップ可能。
  • プロジェクトとGitブランチごとにポートを整理。
  • デフォルトで読み取り専用のMCP連携。
  • 検証済みの自動アップデート。

macOS 26.0以降が必要です