Open Source

Apple Containerization:在 macOS 上執行原生 Linux 容器的 Swift 套件

Containerization 是 Apple 的開源 Swift 套件,使用 Virtualization.framework 在 macOS 上執行 Linux 容器,於 WWDC 2025 宣布。

Keeping this site alive takes effort — your support means everything.
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分! 無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!
Apple Containerization:在 macOS 上執行原生 Linux 容器的 Swift 套件

當 Apple 在 WWDC 2025 上宣布 Containerization 時,它代表了一個重大的策略轉變:Apple 不僅提供一個容器工具,而是從底層開始為 macOS 建立原生的容器化堆疊。Containerization 是構成此堆疊程式化基礎的 Swift 套件,提供一個乾淨、Swift 原生 API,用於建立、管理和編排將 Linux 容器作為輕量級 VM 執行。

與提供終端使用者命令列介面的 Apple Container CLI 工具不同,Containerization 專為需要將容器管理直接整合到應用程式、建置工具和工作流程中的開發者而設計。它是 Apple Container 底層所使用的同一個套件,但以公開 API 的形式提供程式化使用。

該套件支援多種容器執行階段和格式,包括 OCI 相容容器和具有硬體強制隔離的 Kata Containers。透過基於 Virtualization.framework 構建,Containerization 在提供硬體虛擬化的安全隔離的同時實現了原生效能──這是在 macOS 上使用傳統容器執行階段難以實現的組合。


Containerization 的架構如何運作?

Containerization 是一個分層的 Swift 套件,抽象化了虛擬化的複雜性,同時提供對容器生命週期和資源的細粒度控制。

graph TD
    A[Swift 應用程式] --> B[Containerization Swift API]
    B --> C[VM 管理層]
    B --> D[容器執行階段層]
    B --> E[網路配置]
    B --> F[儲存管理]
    C --> G[Virtualization.framework]
    D --> H[OCI 執行階段支援]
    D --> I[Kata Container 支援]
    E --> J[NAT / 橋接 / 僅主機]
    F --> K[磁碟區掛載 / 快照]
    G --> L[Linux VM 實例]
    H --> L
    I --> L

分層架構清晰地分離了關注點:VM 管理層處理虛擬化生命週期,容器執行階段層處理映像拉取和容器執行,網路和儲存層則負責連接性和持久性。每一層都可以獨立存取,讓開發者能夠自訂其整合方式。


Containerization 公開了哪些 API?

Containerization Swift 套件提供了一套全面的程式化介面用於容器管理。

API 類別主要函式使用案例
VM 生命週期createVM()startVM()stopVM()pauseVM()管理虛擬機器狀態
容器操作pullImage()runContainer()exec()logs()容器生命週期管理
網路configureNetwork()portForward()dnsConfig()網路拓撲和存取
儲存mountVolume()createSnapshot()restoreSnapshot()資料持久化和備份
資源setCPU()setMemory()getStats()資源分配和監控
配置loadConfig()validateConfig()exportConfig()配置管理

所有 API 都遵循 Swift 的現代並發模型,支援 async/await,使其適用於命令列工具和 GUI 應用程式。


Kata Containers 整合如何運作?

Containerization 對 Kata Containers 的支援是其最獨特的功能之一,為容器提供硬體層級的隔離。

安全功能標準容器使用 Containerization 的 Kata Container
核心隔離共享主機核心專屬 VM 核心
資源隔離cgroups/namespaces硬體虛擬化
攻擊面大(共享核心)最小(VM 邊界)
效能開銷最小低(原生虛擬化)
合規性中等高(硬體隔離)

Containerization 上的 Kata Containers 使用 Virtualization.framework 為每個容器或 Pod 建立輕量級 VM,提供 VM 的安全優勢以及容器的效能和便利性。這對於多租戶環境、處理不受信任程式碼的 CI/CD 管線以及合規敏感的工作負載尤其有價值。


Containerization 與 Apple Container CLI 相比如何?

這兩個工具都基於相同的底層技術,但服務於不同的目的和受眾。

面向Apple Container CLIContainerization Swift 套件
目標受眾終端使用者、開發者應用程式開發者
介面命令列Swift API
使用案例直接容器管理整合到工具/應用程式中
可擴充性僅限 CLI 功能完整的程式化控制
依賴項獨立二進位檔Swift Package Manager
學習曲線低(熟悉的 CLI)中等(Swift 程式設計)

開發者通常同時使用兩者:CLI 用於互動式開發和除錯,Swift 套件用於建立自動化工作流程、自訂工具和整合開發環境。


FAQ

什麼是 Apple Containerization? Apple Containerization 是一個開源的 Swift 套件,提供使用 Virtualization.framework 在 macOS 上執行 Linux 容器的程式化 API。它首次在 WWDC 2025 上亮相。

Apple Containerization 與 Apple Container 有何不同? Apple Container 是一個給終端使用者使用的 CLI 工具。Apple Containerization 是底層的 Swift 套件,提供程式化 API 層,讓開發者可以直接將容器管理整合到他們的 Swift 應用程式中。

Apple Containerization 支援 Kata Containers 嗎? 是的,Apple Containerization 包含執行 Kata Containers 的支援,透過 Apple 的 Virtualization.framework 結合 Kata 的安全功能,為容器提供硬體強制隔離。

Apple Containerization 提供哪些關鍵 API? 該 Swift 套件提供用於建立和管理 Linux VM、在其中執行容器、配置網路和儲存、管理快照、處理檔案共享以及控制資源分配的 API。

Apple Containerization 可以用於 CI/CD 管線嗎? 是的,程式化 API 使其非常適合 CI/CD 整合。建置系統可以使用 Swift 腳本以程式化方式建立容器、執行測試、擷取結果和拆除環境,無需 Docker 或其他執行階段。


延伸閱讀

TAG