ソフトウェア

Apple公式のmacOS上でLinuxコンテナを実行するためのオープンソースSwiftパッケージ「Containerization」


Appleは年次開発者会議のWWDC25で、デベロッパー向けの新テクノロジーやアップデートを発表しました。この中で発表された、Mac上でLinuxコンテナを実行するためのSwiftパッケージが「Containerization」です。

GitHub - apple/containerization: Containerization is a Swift package for running Linux containers on macOS.
https://github.com/apple/containerization


Meet Containerization - WWDC25 - Videos - Apple Developer
https://developer.apple.com/videos/play/wwdc2025/346/

Linuxコンテナはサーバー側アプリケーションの構築・テスト・展開方法の標準となっています。サーバーサイドのワークロードを大規模にデプロイする場合、ワークロードはさまざまな環境で実行する必要があります。コンテナを使用すると、ワークロードをホストマシンから分離するだけでなく、ワークロード同士を分離することが可能。また、コンテナを使用すると、デプロイ環境をローカルマシンに複製することができるため、アプリケーションをローカルでまるで本番環境で実行しているかのように開発・テストできるようになります。


そんなLinuxコンテナをmacOSで実行するには、Linux環境を仮想化する必要があります。従来の解決策は、実行中のコンテナをすべてホストする大規模な仮想マシンを生成することでした。

AppleはLinuxコンテナをmacOSに導入する方法を検討していた際、セキュリティ面では「各コンテナに大規模仮想マシンが採用しているのと同等レベルの分離を提供すること」を目指していたそうです。また、仮想マシン内部におけるコアユーティリティや動的ライブラリの必要性を低減することも目指していました。この2点を実現することで、攻撃対象領域が縮小され、仮想マシンを最新の状態に保つためのメンテナンスコストが削減されます。

これを考慮して構築されたのがContainerizationです。ContainerizationはオープンソースのSwiftフレームワークで、Swiftで記述されたアプリケーションです。イメージ管理、コンテナ実行、Swiftで構築された強力なinitシステムのためのAPIを提供可能で、Appleシリコン上のフレームワークである「Virtualization」を使用します。


Containerizationでは以下のAPIが利用可能です。

OCIイメージの管理
・リモートレジストリとの対話
ext4ファイルシステムを作成および入力
Netlinkソケットファミリとの対話
・起動時間を短縮するために最適化されたLinuxカーネルの作成
・軽量の仮想マシンを生成
・仮想マシンのランタイム環境を管理
・コンテナ化されたプロセスを生成および対話
・Appleシリコン上でx86_64プロセスを実行する際にRosetta 2を使用

Containerizationでは各Linuxコンテナをそれぞれ専用の軽量仮想マシン内で実行します。クライアントはコンテナごとに専用のIPアドレスを作成できるため、個別のポート転送は不要です。コンテナは最適化されたLinuxカーネル構成と、軽量のinitシステムを備えた最小限のルートファイルシステムを使用することで、1秒未満の起動時間を実現します。

vminitdは、Containerizationのサブプロジェクトである小規模なinitシステムです。vminitd仮想マシン内で初期プロセスとして生成され、vsock経由でgRPC APIを提供します。このAPIにより、ランタイム環境の設定やコンテナ化されたプロセスの起動が可能となり、vminitdプロセス実行時には呼び出し元プロセスにI/O、シグナル、イベントを提供することができるようになります。


なお、AppleはContainerizationの使用例として、「OCIイメージの操作」「コンテナレジストリへのログイン」「ルートファイルシステムブロックの作成」「シンプルなLinuxコンテナの実行」を挙げています。

ContainerizationのCLIも用意されています。

GitHub - apple/container: A tool for creating and running Linux containers using lightweight virtual machines on a Mac. It's written in Swift, and optimized for Apple silicon.
https://github.com/apple/container


Appleの発表したContainerizationはソーシャルニュースサイトのHacker News上でも話題となっており、「このプロジェクトはAppleが最近GitHub上で公開したプロジェクトの中でも、開発者により実りのあるコラボレーションが期待できるものです」と称賛するコメントがありました。

また、「Macでのゲームプレイが劇的に改善されるのでしょうか?ValveはSteam Deckのおかげでゲームに対する信頼性を高めており、Linuxでのゲーム体験も年々向上しています。AppleのMetalや同様のツールではなく、仮想Linux環境内でゲームを実行できるようになるのではないでしょうか?そうなればゲーム開発者にとっても役立ちます。開発者はWindows、Linux、コンソール向けにビルドするだけで済むので」というゲームへの応用を期待する声もあります。

「Dockerはこの件についてどう思っているのか気になるところです。MacにはDocker for Desktopがあるはずですが……」というコメントに対しては、「これはDocker for Desktopと競合しません。それよりも低レベルです。Docker for Desktopは、コンテナ/仮想化ソフトウェア(MacではHypervisor.frameworkとQEMU、WindowsではWSL、Linuxではcontainerd)をベースに構築されています。そのため、Docker for Desktopの将来のバージョンでこのライブラリが使用される可能性は高いですが、実際には競合することはありません」という意見が寄せられていました。

この記事のタイトルとURLをコピーする

・関連記事
AppleがXcodeにAIでのコーディング補助機能を追加&Apple Intelligenceの基盤モデルフレームワークが利用可能に - GIGAZINE

DockerでmacOSを実行できる「Lumier」 - GIGAZINE

Appleにクラウドの専門家が続々と集結中、一体何が始まろうとしているのか? - GIGAZINE

仮想化ツール「Docker」がM1チップ搭載Macに対応、x86アーキテクチャとArmアーキテクチャのイメージが実行可能に - GIGAZINE

in モバイル,   ソフトウェア, Posted by logu_ii

You can read the machine translated English article Containerization, the official open sour….