菜单

部署选项

相关源文件

本文档介绍了在不同环境中部署 Docker-OSX 的各种方法。它涵盖了 Docker CLI、Docker Compose 和 Kubernetes 编排配置,以帮助您为特定的用例选择最合适的部署方法。

有关设置后自定义部署实例的信息,请参阅配置与自定义 #4

部署方法概述

图示:Docker-OSX 部署选项

来源:README.md512-521

Docker CLI 部署

部署 Docker-OSX 最直接的方法是使用 Docker CLI 结合 docker run 命令。此方法非常适合个人开发机器和测试环境。

基本部署

基本的部署模式使用 docker run 命令,并包含必要的设备挂载和环境变量。

来源:README.md60-71 README.md106-118

Docker CLI 部署选项

可以使用各种环境变量和卷挂载来定制 Docker CLI 部署。

参数描述示例
--device /dev/kvmKVM 访问用于硬件加速必填
-p 50922:10022SSH 端口转发-p 2222:10022
-v /tmp/.X11-unix:/tmp/.X11-unixX11 显示转发GUI 所需
-e "DISPLAY=${DISPLAY:-:0.0}"X11 显示变量GUI 所需
-e RAM=4RAM 分配(GB)-e RAM=8
-e SMP=4CPU 核心分配-e SMP=6
-e GENERATE_UNIQUE=true生成唯一的机器值-e GENERATE_UNIQUE=true
-e SHORTNAME=venturamacOS 版本选择-e SHORTNAME=monterey
-e EXTRA="..."其他 QEMU 参数请参阅高级选项

来源:README.md1194-1211 README.md740-748

图示:Docker CLI 参数和系统配置流程

来源:README.md429-442 README.md1190-1212

自定义镜像路径

使用您自己的磁盘镜像

来源:README.md220-231 README.md1647-1662

Docker Compose 部署

Docker Compose 允许您使用 YAML 文件定义多容器 Docker 应用程序。它非常适合开发环境,并通过将配置存储在版本化文件中来简化部署。

Docker Compose 文件示例

使用 Docker Compose 的好处包括:

  • 配置即代码
  • 部署规范的版本控制
  • 简化的部署和扩展
  • 便捷的环境变量管理
  • 能够使用不同配置部署多个实例

来源:README.md570-571

Kubernetes 部署

Docker-OSX 使用 Helm Chart 支持 Kubernetes 部署。此方法非常适合 CI/CD 管道、多用户环境和需要可扩展性的生产部署。

图示:Kubernetes 部署架构

来源:helm/README.md1-13 README.md515-522

Helm Chart 功能

Docker-OSX Helm Chart 提供以下功能:

功能描述
CPU/内存配置设置资源限制和请求
VNC 密码安全的 VNC 访问
持久化macOS 磁盘的持久化存储
SMBIOS 配置自定义序列号和标识符
GPU 直通硬件加速
音频切换音频支持
端口转发附加服务端口
资源限制Kubernetes 资源约束
macOS 版本选择选择特定的 macOS 版本
分区大小配置磁盘大小

来源:helm/README.md14-29

Kubernetes 安装步骤

  1. 为 QEMU 和 GPU IOMMU 安装宿主机要求

  2. 构建 sickcodes/docker-osx-vnc Docker 镜像

  3. 配置 values.yaml

    • 设置唯一的 VNC 密码
    • 为 iServices 生成 SMBIOS 值
    • 配置系统参数
    • 设置 IP 地址或使用入口(ingress)
    • 更新卷路径
  4. 部署 Helm Chart

  5. 使用 VNC 查看器连接到端口 8888 上的指定 IP/主机名

来源:helm/README.md35-83 README.md518-523

部署方法比较

功能Docker CLIDocker ComposeKubernetes
设置简易度中等
配置管理手动/CLIYAML 文件Helm 值
可扩展性中等
资源管理手动基础高级
CI/CD集成基础良好优秀
持久化手动内置内置
多实例手动容易原生
生产就绪性中等

来源:README.md512-521 helm/README.md1-13

高级部署场景

CI/CD集成

Docker-OSX 可以集成到 CI/CD 管道中,用于 iOS 和 macOS 应用程序的自动化测试。这需要无头操作和 SSH 访问。

来源:README.md1124-1149 README.md1729-1750

无头操作

对于没有显示器的服务器环境,Docker-OSX 可以使用 VNC 或不带任何显示器的方式进行无头运行。

对于完全无头且没有任何显示服务器的部署,您可以使用 Telnet 进行控制台访问。

来源:README.md1151-1172 README.md1754-1779

远程访问选项

方法端口安全用例
SSH50922命令行访问
VNC5999中等GUI 访问
SPICE3001中等远程查看器访问
Telnet45454QEMU 控制台访问

来源:README.md1754-1820

按用例划分的部署建议

图示:特定用例的部署选项

来源:README.md512-521 helm/README.md1-13

用例推荐部署关键配置
本地开发Docker CLIX11 转发,USB 直通
iOS/macOS 应用测试Docker CLI/Compose自定义镜像,持久化存储
iMessage/iCloud 研究带有专门参数的 Docker CLI序列号生成
CI/CD 流水线Kubernetes无头操作,VNC 访问
安全研究Kubernetes自定义镜像,持久化存储
多用户环境Kubernetes资源限制,多实例

来源:README.md484-495 README.md560-583

总结

Docker-OSX 提供了灵活的部署选项以适应各种用例,从个人开发环境到复杂的 CI/CD 管道。Docker CLI、Docker Compose 和 Kubernetes 部署之间的选择取决于可扩展性要求、配置管理需求和正在处理的特定用例等因素。对于简单的设置,Docker CLI 可提供最快的工作环境,而 Kubernetes 为生产部署提供了最稳健的解决方案。

来源:README.md512-521 helm/README.md1-13