Apple container 詳解:Mac でコンテナごとに軽量 Linux VM を動かす仕組み
コンテナ単位の microVM、OCI イメージ、Virtualization、vmnet、XPC、導入手順、対応ハードウェア、資源制約、比較対象を公式資料から整理する。
位置付けと現在の信号
Apple container は macOS で Linux コンテナを軽量 VM 内に構築・実行する CLI で、OCI イメージとの互換性を保つ。取得時点は 48,081 Star、直近 30 日に約 43 コミット、最新リリースは 1.1.0 だった。一般的な共有 Linux VM と違い、コンテナごとに VM を割り当てるため、隔離、ネットワーク、資源回収の特性が変わる。
用途と主要機能
Apple silicon の開発者が標準 OCI イメージを取得、実行、構築、送信し、Linux サービスをローカルで試す用途が中心である。CLI はコンテナ、イメージ、レジストリ、ネットワーク、システムを管理し、Dockerfile からのビルドにも対応する。単一端末の開発や再現可能なビルド検証に向くが、クラスタ編成や総合デスクトップ管理製品ではない。
構成と実行原理
CLI は launchd が管理する `container-apiserver` と通信する。apiserver は XPC 経由でイメージとネットワークの補助サービスを起動し、core-images が内容ストア、vmnet ヘルパーが仮想ネットワークを管理する。各コンテナには runtime-linux ヘルパーと軽量 Linux VM が割り当てられる。下層の Containerization Swift パッケージがイメージ、プロセス、実行機能を提供する。
技術と対応範囲
Swift で実装され、macOS の Virtualization framework、vmnet、XPC、launchd、Keychain、統一ログを利用する。入出力は OCI 標準に従い、一般的なレジストリと交換できる。公式の対応範囲は Apple silicon と macOS 26 である。旧システムにはネットワークや複数ネットワークの制約があり、macOS 26 で再現しない問題は通常対応されない。Intel Mac や複数 OS の同一動作は対象外だ。
最小の導入手順
対象リリースの署名付きインストーラを GitHub から取得し、導入後に `container system start` を実行する。初回は推奨 Linux カーネルの導入を求められる場合がある。`container list --all` で確認し、OCI イメージを動かすか、チュートリアルの `container build --tag web-test --file Dockerfile .` を試す。利用前に保存先、レジストリ資格情報、ネットワーク、DNS、対象タグの文書を確認する。
長所、制約、資源コスト
コンテナ別 VM はワークロード間の隔離を強め、必要な VM だけにホストデータをマウントできる。OCI 対応によりイメージ移行も容易である。一方、機能は発展中で、既存ランタイムの全手順が揃うわけではない。文書はメモリバルーニングの制約も示す。Linux 内で解放されたページが macOS にすぐ戻らず、高メモリの複数コンテナでは再起動が必要になることがある。