菜单

镜像变体

相关源文件

本页面提供了 Docker-OSX 不同镜像变体的详细概述,解释了它们的目的、功能和适用的使用场景。Docker-OSX 提供了一系列专门的容器镜像,以满足从开发环境到持续集成管道和安全研究的各种不同需求。

有关安装和基本用法的信息,请参阅 安装与基本用法

镜像变体概述

Docker-OSX 提供了几种专门的镜像变体,每种都针对特定的使用场景进行了设计。

来源:README.md426-442 Dockerfile357-361

镜像变体功能比较

每个镜像变体都提供不同的功能和能力,以满足特定需求。

变体磁盘镜像自动化远程访问主要用例
基础 (:latest)包含X11 转发通用,首次设置
裸装 (:naked)用户提供X11 转发自定义磁盘镜像使用
自动 (:auto)包含X11 转发自动化工作流程,CI/CD
裸装-自动 (:naked-auto)用户提供X11 转发自定义自动化工作流程
VNC (:vnc)包含VNC + X11远程访问场景

来源:README.md431-441 Dockerfile.naked23-30 Dockerfile.auto27-41 vnc-version/Dockerfile22-62

镜像变体详情

基础镜像 (:latest)

基础镜像是一切其他变体的基础。它包含了一个完整的环境,用于在 Docker 容器中通过 QEMU/KVM 运行 macOS。此变体要求用户经历 macOS 安装过程,但提供了最大的灵活性。

基础镜像最适合

  • 首次使用 Docker-OSX 并希望从头开始设置 macOS 的用户
  • 需要安装特定 macOS 版本的用户
  • 需要全新 macOS 安装的开发环境

来源:Dockerfile192-217 README.md60-71

裸装镜像 (:naked)

裸装镜像专为希望自带磁盘镜像的用户设计。此镜像不包含预装的 macOS 系统;而是需要挂载现有的磁盘镜像。

裸装镜像适用于

  • 重用现有的 macOS 安装
  • 使用不同磁盘镜像进行测试
  • 备份和恢复场景
  • 使用自定义磁盘镜像进行安全研究

使用示例

来源:Dockerfile.naked20-31 README.md210-231

自动镜像 (:auto)

自动镜像预装了 macOS 系统并具备自动登录功能。此镜像专为自动化和 CI/CD 管道而设计。

自动镜像非常适合

  • 持续集成和测试管道
  • 自动化的 macOS 构建
  • 需要一致、即用型 macOS 实例的环境
  • 无需安装即可快速启动开发

适用于自动的特定环境变量

  • USERNAME:自动登录的用户名(默认:“user”)
  • PASSWORD:自动登录的密码(默认:“alpine”)
  • OSX_COMMANDS:登录后要运行的命令

来源:Dockerfile.auto16-19 Dockerfile.auto187-193 README.md158-175

裸装-自动镜像 (:naked-auto)

裸装-自动镜像结合了裸装和自动镜像的特点。它允许您自带磁盘镜像,同时也包含了自动镜像的自动化能力。

裸装-自动镜像适用于

  • 在自动化环境中进行自定义磁盘镜像测试
  • 需要特定 macOS 配置的 CI/CD 管道
  • 需要定制化和自动化的场景

使用示例

来源:README.md234-261

VNC 镜像 (:vnc)

VNC 镜像在基础 Docker-OSX 镜像的基础上增加了通过 VNC 进行远程图形访问的功能。此镜像非常适合远程或无头服务器环境。

VNC 镜像的关键功能

  • 对 macOS 环境进行远程图形访问
  • 在无头服务器上运行
  • 通过 SSH 隧道支持安全连接
  • 使用随机生成的密码(可在容器日志中查看)

使用示例

使用任何 VNC 客户端连接到 localhost:8888 或通过隧道进行远程访问。

来源:vnc-version/Dockerfile29-62 vnc-version/Dockerfile101-124

操作系统版本变体

Docker-OSX 提供不同 macOS 版本的镜像变体

可以通过在构建时使用 --build-arg SHORTNAME=version 或在运行时使用 -e SHORTNAME=version 来指定每个操作系统版本。SHORTNAME 环境变量决定了下载和安装哪个 macOS 版本。

来源:README.md417-425 Dockerfile361

特殊配置选项

所有镜像变体都支持一系列环境变量以进行自定义

可变描述默认应用场景
内存RAM 分配(GB)4所有变体
DISPLAYX11 显示服务器:0.0基础、裸装
NOPICKER跳过启动选择器false所有变体
CPU模拟的 CPUPenryn所有变体
GENERATE_UNIQUE生成唯一序列号false所有变体
BOOTDISK自定义启动磁盘路径所有变体
WIDTH/HEIGHT屏幕分辨率1920x1080所有变体
MASTER_PLIST_URLOpenCore 配置模板所有变体
USERNAME/PASSWORD自动登录凭据user/alpine自动变体

来源:Dockerfile283-333 Dockerfile.naked120-163 Dockerfile.auto153-199

选择合适的镜像变体

为了帮助您为您的需求选择最合适的 Docker-OSX 镜像变体

按用例推荐

  • 开发环境:使用 :latest 进行全新安装,或使用 :auto 进行快速启动
  • CI/CD 管道:使用 :auto:naked-auto 进行自动化
  • 安全研究:使用 :naked 搭配自定义磁盘镜像
  • 远程/无头服务器:使用 :vnc 进行图形远程访问
  • iMessage/iCloud 测试:使用任何变体并加上 -e GENERATE_UNIQUE=true

来源:README.md570-588 README.md483-495

常见使用模式

使用您自己的磁盘镜像

使用自动化功能

为 iServices 生成唯一序列号

来源: README.md210-261 Dockerfile364-400

结论

Docker-OSX 提供一系列专门的镜像变体,以适应从开发和测试到自动化和安全研究的各种用例。通过选择合适的变体并使用正确的环境变量进行配置,您可以快速设置满足您特定要求的 macOS 环境。

有关特定变体的详细信息,请参阅专用页面。