Apple Container CLI 工具全面使用指南(命令、配置与高级功能汇总)

社区话题 Linux/macOS 与自动化运维 Apple Container CLI 工具全面使用指南(命令、配置与高级功能汇总)

标签: 

  • 该话题为空。
正在查看 0 条回复
  • 作者
    帖子
    • #1198

      追光
      管理员

      一、资源配置

      1. 容器资源限制(内存 & CPU)
      默认:1 GiB 内存,4 CPU
      覆盖方式:

      container run --rm --cpus 8 --memory 32g big

      支持内存单位缩写:32g = 32 GiB

      2. 构建器(Builder)资源配置
      默认:2 GiB 内存,2 CPU
      启动自定义构建器:

      container builder start --cpus 8 --memory 32g

      修改已运行的构建器:

      container builder stop
      container builder delete
      container builder start --cpus 8 --memory 32g

      二、数据共享与挂载

      1. 挂载主机目录(Volume)

      container run --volume ${HOME}/Desktop/assets:/content/assets image command

      格式:hostpath:containerpath

      2. 使用 –mount(键值对语法)

      container run --mount source=${HOME}/Desktop/assets,target=/content/assets image command

      3. 挂载 SSH 认证套接字(用于私有 Git)

      container run -it --rm --ssh alpine:latest sh

      自动挂载 $SSHAUTHSOCK 到 /run/host-services/ssh-auth.sock
      支持会话切换后自动更新 socket 路径

      三、多平台支持(Multiplatform)

      构建多架构镜像:

      container build --arch arm64 --arch amd64 --tag registry.example.com/fido/web-test:latest .

      运行指定架构容器:

      container run --arch arm64 --rm image uname -a
      container run --arch amd64 --rm image uname -a

      在 Apple Silicon 上通过 Rosetta 运行

      推送多平台镜像:

      container image push registry.example.com/fido/web-test:latest

      与单平台命令相同,自动处理 manifest list

      四、网络功能

      1. 端口转发(Publish)

      container run -d --rm -p 127.0.0.1:8080:8000 python:slim python3 -m http.server --bind 0.0.0.0 8000

      格式:[host-ip:]host-port:container-port[/protocol]

      2. 创建隔离网络(macOS 26+)

      container network create foo
      container network list
      container run --network foo --name my-web-server --rm web-test
      container network delete foo

      需先停止容器
      默认网络:default(192.168.64.0/24)
      新网络自动分配新子网(如 192.168.65.0/24)
      网络间完全隔离

      五、镜像与容器信息查询

      1. 详细信息(JSON 格式)

      container image inspect web-test | jq
      container inspect my-web-server | jq

      2. 自定义列表输出

      container ls --format json --all | jq '.[] | select(.status == "running") | [.configuration.id, .networks[0].address]'

      六、日志查看

      1. 应用日志

      container logs my-web-server

      2. 虚拟机启动日志

      container logs --boot my-web-server

      3. 系统服务日志

      container system logs | tail -8

      七、高级功能

      1. 嵌套虚拟化(M3+ 芯片)

      container run --virtualization --kernel /path/to/kernel-with-kvm image dmesg | grep kvm

      需支持嵌套虚拟化的 Linux 内核
      Apple Silicon M3 或更新机型才支持

      八、系统配置管理

      查看所有配置项:

      container system property list

      常用配置示例:

      配置项说明示例命令
      build.rosetta是否在 arm64 上用 Rosetta 构建 amd64 镜像
      container system property set build.rosetta false
      dns.domain默认本地 DNS 域名
      container system property set dns.domain test
      image.builder构建器镜像地址(高级定制)
      kernel.url默认内核下载地址(高级定制)

      九、Shell 自动补全

      生成补全脚本:

      container --generate-completion-script zsh

      或 bash、fish

      安装方法参考:
      Swift Argument Parser 文档

      十、平台限制说明

      功能支持平台
      容器间通信(通过 DNS/IP)macOS 26+
      自定义网络(container network create)macOS 26+
      嵌套虚拟化M3 或更新 Apple Silicon + 支持 KVM 的内核

      总结
      Apple container 提供了类似 Docker 的用户体验,但底层基于轻量级虚拟机(Kata Containers + macOS 虚拟化框架),支持资源控制、多平台构建、网络隔离、SSH 转发、日志查看等企业级功能,并深度集成 macOS 特性(如 DNS、Rosetta、系统日志)。

正在查看 0 条回复
  • 在下方一键注册,登录后就可以回复啦。