Apple Unveils Containerization Tool for Mac at WWDC 2025


AppleがWWDC 25でMac上でコンテナを作成・実行するツールを公開しました。

Appleのサイトにもトランスクリプトやサマリーの記載がありましたが、動画の内容をまとめてみます。

Containerizationの紹介 - WWDC25 - ビデオ - Apple Developer
Containerizationは、Mac上でLinuxコンテナを作成して実行するための、Swiftで記述されたオープンソースプロジェクトです。このセッションでは、ContainerizationがどのようにLinuxコンテナを安全かつプライベートに処理するかを説明します。...
Containerizationの紹介 - WWDC25 - ビデオ - Apple Developer favicon developer.apple.com
Containerizationの紹介 - WWDC25 - ビデオ - Apple Developer
GitHub - apple/containerization: Containerization is a Swift package for running Linux containers on macOS.
Containerization is a Swift package for running Linux containers on macOS. - apple/containerization
GitHub - apple/containerization: Containerization is a Swift package for running Linux containers on macOS. favicon github.com
GitHub - apple/containerization: Containerization is a Swift package for running Linux containers on macOS.
GitHub - apple/container: A tool for creating and running Linux containers using lightweight virtual machines on a Mac. It is written in Swift, and optimized for Apple silicon.
A tool for creating and running Linux containers using lightweight virtual machines on a Mac. It is written in Swift, and optimized for Apple silicon. - GitHub - apple/container: A tool for creati...
GitHub - apple/container: A tool for creating and running Linux containers using lightweight virtual machines on a Mac. It is written in Swift, and optimized for Apple silicon. favicon github.com
GitHub - apple/container: A tool for creating and running Linux containers using lightweight virtual machines on a Mac. It is written in Swift, and optimized for Apple silicon.

コンテナ化フレームワークの紹介

Michaelが、新しいオープンソースのSwiftフレームワーク「Containerization(コンテナ化)」を紹介。本フレームワークは、Swiftで書かれたセキュアかつ高性能なLinuxコンテナ実行環境をmacOS上で提供することを目的としています。


コンテナの基礎と利点

Linuxコンテナは、アプリケーションの開発・テスト・デプロイを隔離された環境で行うための標準的な手法です。ホストマシンや他のコンテナから隔離し、アプリケーションとその依存関係(バイナリ、ライブラリ、アセットなど)を1つのユニットにパッケージングし、再現性の高い動作保証とセキュリティ、プライバシー、柔軟性を提供します。


macOS上でLinuxコンテナを実行する課題と方針

macOS上でLinuxコンテナを動作させるためにはLinux環境の仮想化が必要ですが、従来の方法は大規模な仮想マシンを起動し、リソースを共用担当するものでした。Containerizationは以下の目標に基づいて設計されました:

  • 各コンテナにVMレベルの隔離を提供

  • 仮想マシン内の必要最小限のユーティリティのみを使用し、攻撃面を最小化

  • コンテナごとのアクセス制御によるプライバシーの強化

  • パフォーマンスとリソース効率の両立


コンテナの作成と実行の仕組み

Containerizationでは、コンテナは「イメージ」から作られ、イメージにはファイルシステムと設定情報が含まれています。これをローカルディスクに保存し、Linuxが理解できるext4形式でブロックデバイスとして利用可能。

各コンテナは独立した軽量仮想マシンで実行され、個別のIPアドレスを持つことでネットワークパフォーマンスを確保し、ポートマッピングも不要に。


vminitdの役割と最小限の実行環境

仮想マシン内では、Swiftで書かれた初期化プロセス「vminitd」が実行され、下記の役割を担います:

  • ネットワーク設定(IPアドレスの割り当て)

  • ファイルシステムのマウント(ブロックデバイス経由)

  • プロセスの管理(起動・監視)

セキュリティの観点から仮想マシンのファイルシステムにはコアユーティリティや動的ライブラリ、libcなどは含まず、vminitdはMusl libcとSwift Static Linux SDKを使い、静的リンクされた実行ファイルとして提供されます。


コマンドラインツール「container」の使用

CLIツール「container」を使うことで、コンテナの構築と管理が容易に行えます:

  • 例:container image pull alpine:latest でイメージを取得

  • コンテナ実行:container run -it alpine:latest sh により対話型シェルを起動可能

  • コンテナ内でのプロセスは完全に隔離され、他のプロセスは見えない


終わりに

Containerizationは、Swiftで書かれたLinuxコンテナのAPIとツールを提供し、セキュアでプライベート、かつ高性能なmacOS上でのLinuxコンテナ運用を可能にします。GitHubからソースコード取得やリクエスト、参加が可能で、今後の開発者コミュニティへの貢献が期待されています。

www.perplexity.ai
www.perplexity.ai favicon www.perplexity.ai