作者 | Claudio Masolo
策劃 | 張衛濱
蘋果在 2025 年的全球開發者大會(wwdc) 上發布了 Containerization 和 Container CLI,這是一個在 Mac 上以輕量級虛擬機方式創建和運行 linux 容器的工具。這是開發者在 macos 上運行 Linux 容器方式的重大轉變,因為這一新的開源容器化框架消除了對 docker 等第三方工具的需求。這個基于 swift 的框架將在 macos 26 中直接提供原生的 Linux 容器支持,標志著蘋果以安全、性能和隱私為關注點進入了容器化領域。
傳統的容器化解決方案會在單個大型虛擬機中運行多個容器,與之不同,蘋果的方法是在輕量級虛擬機中運行每個 Linux 容器。這種架構提供了多項關鍵的優勢:
增強安全性:每個容器都能獲得與完整虛擬機相同的隔離級別,這顯著減少了攻擊面。最小的文件系統不包含核心實用程序、動態庫或 libc 實現,進一步降低了安全風險。專用資源:每個容器都有自己的 IP 地址,消除了端口轉發的需求,并提供了高性能的網絡訪問。CPU 和內存資源按容器分配,當容器不運行時不消耗資源。隱私設計:目錄和文件共享基于每個容器進行,確保只有請求的容器可以訪問共享內容,而不是將其暴露給共享虛擬機中的所有容器。
Containerization 框架廣泛使用了 Swift,包括一個完全用 Swift 編寫的自定義初始化系統vminitd。這個初始化系統作為每個虛擬機中的第一個進程運行,并處理如下任務:
網絡接口的 IP 地址分配文件系統掛載,包括容器的塊設備進程啟動和監管主機 – 容器通信的 API 管理
為了在沒有標準庫的環境中實現這一點,蘋果使用 Swift 的靜態 Linux SDK 直接從 macOS 交叉編譯靜態 Linux 二進制文件,結合musl提供靜態鏈接支持。
盡管每個容器都在自己的虛擬機中運行,但蘋果聲稱通過多項優化實現了亞秒級的啟動時間:
優化 Linux 內核:為容器化工作負載特別設計的自定義內核配置EXT4 塊設備:容器文件系統作為格式化的 EXT4 塊設備進行暴露,以實現高性能訪問Apple Silicon 優化:整個技術棧針對蘋果定制的 silicon 架構進行了優化
蘋果為構建容器化解決方案的開發者提供了框架,并提供了一個命令行工具供立即使用。container CLI 工具提供了熟悉的類 Docker 命令:
代碼語言:JavaScript代碼運行次數:0運行復制
# 拉取鏡像container image pull alpine:latest# 運行一個可進行交互的容器container run -t -i alpine:latest sh
該工具提供 XPC 服務,用于存儲、鏡像管理、網絡服務和容器運行時管理,所有這些都是使用 Containerization API 構建的。
蘋果已經在 gitHub 上將 Containerization 框架和 container CLI 工具作為開源項目發布。代碼倉庫包括:
框架和工具的完整源代碼演示集成的示例項目技術文檔和架構的概述vminitd 中使用的跨平臺 Swift 包
蘋果進入容器化領域使其加入了一個已經形成的開源替代 Docker 的生態系統,這些替代方案最近獲得了顯著的關注。由紅帽開發的 podman 是最著名的 Docker 替代方案,它提供了符合 OCI 標準的容器管理,具有 daemonless 架構,消除了對 root 權限的需求。這種無 root 操作提供了增強的安全性,使 Podman 在安全至關重要的環境中特別有吸引力。其他值得注意的解決方案包括 containerd,它作為 kubernetes 使用的底層容器運行時,以及 Buildah,它專門用于在不需要完整容器運行時的情況下構建容器鏡像。像 LXD 這樣的工具專注于系統容器而不是應用程序容器,而像 rancher Desktop 這樣的解決方案提供了進行容器管理的用戶友好的圖形界面。蘋果的獨特方法,即在每個容器中運行自己的輕量級虛擬機,將其與這些現有解決方案區分開來,這些解決方案通常依賴于共享內核容器化技術,如 cgroups 和 namespaces。
Containerization 框架和 containerCLI 將隨 macOS 26 提供,開源組件在 github 上立即可用。開發者可以探索框架,為其開發做出貢獻,并開始構建在 macOS 上原生集成 Linux 容器的解決方案。
查看英文原文:
Apple Containerization a Native Linux Container Support for macOS(https://www.infoq.com/news/2025/06/apple-container-linux/)
聲明:本文由 InfoQ 翻譯,未經許可禁止轉載。
點擊底部閱讀原文訪問 InfoQ 官網,獲取更多精彩內容!