ろぼいんブログ

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

macOS上のコンテナ上でLinuxが動作しているスクリーンショット
画像:Apple

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をアップデートする際には、一度アンインストールしてからインストールし直す必要があるとのことです。

Terminal window
uninstall-container.sh -k

参考リンク

記事をシェア

Xに共有するBlueskyに共有するMisskeyに共有するLINEに共有するThreadsに共有する

フォローして最新情報を入手

Googleの優先ソースに追加すると、このサイトの記事をGoogleで見つけやすくなります。また、ぜひXやRSSフィードもフォローしてください。

Googleの優先ソースとして追加するGoogleの優先ソースとして追加するXのロゴ
広告
著者のアイコン画像

生まれた時から、母国語よりも先にJavaScriptを使っていました。ネットの海のどこにもいなくてどこにでもいます。

Webフロントエンドプログラマーとして、TypeScriptを用いたWebアプリやブラウザー拡張機能を制作。Xのシャドウバン検知ツール「Shadowban Scanner」やリンクカード復活ツール「Restore Link Card」を公開し、国内外のメディアで紹介されました。iGEM 2023ではJapan-UnitedチームのWikiを制作してGrand Prizeの獲得に貢献。ブログではXやSNSの最新ニュース、不具合の検証と対処法、フロントエンド開発の知見を発信しています。