Apple Container 快速入门
Apple Container 快速入门
目录
- 一句话了解 Apple Container
- 核心概念(CLI → APIServer → 轻量 VM)
- 环境要求
- 5 分钟上手
- 常用命令速览
- 构建镜像与端口转发
- 常见问题
- 下一步
1. 一句话了解 Apple Container
Apple Container(命令container)是 Apple 开源的macOS 容器工具:在 Apple 芯片 Mac 上把Linux 容器跑在独立轻量级 VM里(非传统「一个大 VM 里塞多容器」)。Swift 编写,OCI 镜像互通,底层依赖 Containerization 包,深度集成 Virtualization、vmnet、XPC、Launchd。
为什么用?
- VM 级隔离:每个容器独立 VM,安全与隐私优于共享内核方案
- 原生 macOS:与系统虚拟化、网络、钥匙串、统一日志集成
- 生态兼容:拉 Docker Hub / GHCR 镜像、
Dockerfile+ BuildKit 构建
2. 核心概念(CLI → APIServer → 轻量 VM)
| 步骤 | 做什么 |
|---|---|
| 1. 安装 | .pkg或make install→/usr/local/bin/container |
| 2. 启服务 | container system start(拉起 APIServer、必要时装内核) |
| 3. 跑容器 | CLI 经XPC调 APIServer,再为容器创建/启动轻量 Linux VM |
与 Docker Desktop 等「共享 VM」对比:container一容器一 VM,隔离更强,启动仍保持轻量。
3. 环境要求
| 项 | 要求 |
|---|---|
| 硬件 | Apple 芯片 Mac(M1+) |
| 系统 | macOS 26(推荐;macOS 15 功能受限) |
| 内核 | 首次system start可按提示安装 Linux 内核 |
维护方主要支持 macOS 26 上的问题复现。
4. 5 分钟上手
4.1 安装(推荐 .pkg)
从 GitHub Releases 下载签名.pkg,安装到/usr/local:
/usr/local/bin/container— 主 CLI/usr/local/bin/container-apiserver— 后台守护进程
4.2 启动系统服务
container system start首次可能提示安装默认 Linux 内核,按Y确认。验证:
container system status container system version4.3 跑第一个容器
container run--rmdocker.io/python:alpineecho"Hello from container!"run会拉镜像、建 VM、配网络、执行命令;--rm退出后自动删除容器。
4.4 后台运行 + 访问
container run--namemy-web--detach--rm-p127.0.0.1:8080:80<你的镜像>containerlscurlhttp://127.0.0.1:8080container ls可看到容器在192.168.64.x虚拟网段的 IP;-p把本机端口转发进容器。
5. 常用命令速览
| 分组 | 代表命令 | 作用 |
|---|---|---|
| Container | run,start,stop,exec,logs,ls | 容器生命周期 |
| Image | build,image,registry | 镜像与仓库凭证 |
| System | system start/stop/status | 服务与版本 |
| Volume | volume | 数据卷 |
| Machine | machine | VM 级管理 |
container--helpcontainerls-acontainer--version支持别名:ls≈list,rm≈delete。
6. 构建镜像与端口转发
Dockerfile 构建(BuildKit 跑在独立构建器 VM 内):
container build-tmy-app:latest-fDockerfile.常用run参数:
| 参数 | 说明 |
|---|---|
-d/--detach | 后台运行 |
--rm | 退出后删除 |
-it | 交互终端 |
-p host:container | 端口发布 |
-v ~/src:/code | 挂载目录 |
--cpus/--memory | 资源限制 |
7. 常见问题
| 现象 | 处理 |
|---|---|
system start失败 | 看是否已装内核;查container system status |
| 容器间无法互访 | macOS 15 网络受限,升级到macOS 26 |
| DNS 解析异常 | 社区高频议题,见完整文档「DNS 解析架构」「问题与反馈」 |
| 命令无响应 | 确认 APIServer 已system start |
8. 下一步
- 官方:apple/container —
docs/tutorials/start-here.md、BUILDING.md。 - 建议顺序:引导教程 → 架构概述 → 容器创建与运行时 → CLI 命令参考。
