macOSでLinuxコンテナを実行できるContainerizationフレームワークが登場

AppleはmacOS Tahoe 26の登場にあわせて、新たなコンテナ実行基盤「Containerizationフレームワーク」を発表しました。
Containerizationフレームワークは、Appleシリコン向けに最適化されたオープンソースのSwift製フレームワークで、macOS上でLinuxコンテナを実行できます。
macOS上でLinuxコンテナの実行が可能に
これまで、macOS上でLinuxコンテナを扱うにはDocker Desktopなどの外部ツールが必要でしたが、Containerizationフレームワークにより、AppleシリコンのMac上でネイティブにコンテナを扱えるようになりました。
Containerizationフレームワークは、Appleが提供する Virtualization.framework をベースにSwiftで実装されています。
Containerizationフレームワークは、次のような機能に対応しています。
- OCIイメージの管理
- リモートレジストリとの連携
- ext4ファイルシステムの作成と初期化
- Netlinkソケットファミリーとの通信
- 高速起動できる最適化済みLinuxカーネルの作成
- 軽量な仮想マシンの起動
- 仮想マシンの実行環境の管理
- コンテナ化されたプロセスの起動と操作
- Appleシリコン上でx86_64プロセスを実行するためのRosetta 2の使用
Containerizationフレームワークでは、各コンテナを独立した軽量VM上で実行するアーキテクチャが採用されています。
これにより、プロセス間の安全な分離が可能となるだけでなく、仮想化ベースのセキュリティが実現されています。
クライアントはコンテナごとに専用のIPアドレスを作成できるため、個別のポート転送は不要です。
また、最小構成のルートファイルシステムと、軽量なinitシステム「vminitd」が用いられており、1秒未満で起動できます。
vminitdは、vsockを介してgRPC APIを提供し、外部からVM内のプロセスを起動・制御できます。
プロセスのI/O、シグナル、イベントなども同様に処理されます。
CLIツール「container」も提供
Containerizationフレームワークと併せて、Appleはコンテナを軽量な仮想マシンとしてmacOS上で直接起動できるCLIツール「 container 」も公開しています。
containerは、Swift製でAppleシリコンに最適化されており、OCI準拠のコンテナイメージを作成・実行できます。
また、Docker Hubなどの標準のコンテナレジストリを利用できます。
対応環境
Containerizationフレームワークを使用するには、Appleシリコンを搭載した、macOS 15以上のMacが必要です。
ただし、macOS 15では非分離コンテナネットワークに対応しておらず、vmnet ネットワーク上のコンテナは相互に通信できません。
インストール方法
container CLIをインストールするには、 GitHubのリリースページ からバイナリーをダウンロードします。
containerをアップデートする際には、一度アンインストールしてからインストールし直す必要があるとのことです。
uninstall-container.sh -k
参考リンク
- Apple、デベロッパのためのツールとテクノロジーを強化 - Apple (日本)
- apple/containerization: Containerization is a Swift package for running Linux containers on macOS.
- 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.
おすすめアイテム
※このリンクを経由して商品を購入すると、当サイトの運営者が報酬を得ることがあります。詳細はこちら。
このサイトを支援する
Buy Me a CoffeeまたはGitHub Sponsorsで支援していただけると、サイトの運営やコンテンツ制作の励みになります。定期的な支援と一度限りの支援がありますので、お間違いのないようにお願いします。
-1.png&w=256&q=75)
生まれた時から、母国語よりも先にJavaScriptを使っていました。ネットの海のどこにもいなくてどこにでもいます。
Webフロントエンドプログラマーで、テクノロジーに関する話題を追いかけています。動画編集やプログラミングが趣味で、たまにデザインなどもやっています。主にTypeScriptを使用したWebフロントエンド開発を専門とし、便利で実用的なブラウザー拡張機能を作成しています。また、個人ブログを通じて、IT関連のニュースやハウツー、技術的なプログラミング情報を発信しています。