Appleがcontainerリリース、Mac上にLinux環境を構築
Apple のオープンソース container CLI 1.0.0 がリリースされた。中核となる新機能は container machine で、Containerization フレームワーク上に構築された永続的な Linux 環境を Mac に提供する。コンテナ並みの軽量さと仮想マシン相当の状態保持を両立し、macOS のワークフローに統合される。
Containerization は macOS 上で Linux コンテナを動かす Swift フレームワークで、WWDC25 でオープンソース化された。各コンテナに VM ベースの分離を与え、サブ秒の起動時間を実現する。container machine は同じ OCI イメージ形式を使い、container tool の一級サブコマンドとして提供される。
主な能力は次のとおり。
- 永続性: 作業中の変更を保持し、停止・再開後も環境を継続できる。
- ホスト統合: Mac のユーザー名とカレントディレクトリを自動でミラーし、共有ファイルシステムにより Xcode など macOS 側の編集が Linux 環境に即反映される。
- 独立ネットワーク: 各 container machine は固有の IP を持ち、Mac の Safari から Linux 上のサーバーへ直接アクセスできる。
- 複数環境: プロジェクトごとに専用の container machine を素早く作成し、ツールチェーンの競合を避けられる。
作成と実行の基本操作は次のとおり。
container machine create --name demo --set-default alpine
container machine run echo hi
container machine run uname
container machine run
container machine listWWDC26 のデモでは、Mac 上の Xcode で Vapor アプリを編集し、container machine 内で swift run してビルド・実行し、Safari から container machine の IP とポート 8080 で応答を確認する流れが示された。Icon Composer で更新したアセットも、ファイルコピーなしで Linux 側のサーバーに反映される。
1.0.0 では container machine に加え、システム設定が UserDefaults ベースから TOML 設定ファイルへ移行し、container system property の get / set サブコマンドが削除された。container、image、network、volume の ls と inspect の構造化出力形状も整理されている。container cp コマンドと container run の --stop-signal オプションが追加された。