本节介绍 Docker-OSX 的高级用法场景和配置,涵盖了除了基本安装和操作之外的内容。这些主题面向需要针对特定用例(如 CI/CD 管道、服务器部署或专用开发环境)来自定义其 Docker-OSX 环境的用户。
高级主题包括网络配置、硬件设备直通技术和无头操作方法。有关基本安装和使用说明,请参阅安装与基本使用。有关不同的 Docker-OSX 镜像变体的信息,请参阅镜像变体。
Docker-OSX 采用分层网络架构,以实现主机系统、Docker 容器和 macOS 虚拟机之间的通信。
网络架构图
来源: README.md61-71 README.md926-964
Docker-OSX 支持将端口从主机系统转发到 macOS 虚拟机中运行的服务。默认情况下,SSH 从主机的 50922 端口转发到容器的 10022 端口。
ADDITIONAL_PORTS 环境变量允许转发多个端口
这会将主机的 10023 端口转发到 macOS 虚拟机的 80 端口,便于访问 Web 服务。
多个端口转发可以串联使用
常见端口转发示例
| 主机端口 | 虚拟机端口 | 典型服务 |
|---|---|---|
| 50922 | 10022 | SSH |
| 10023 | 80 | HTTP |
| 10043 | 443 | HTTPS |
| 5900 | 5900 | VNC |
| 3000 | 3000 | 开发 |
来源: README.md926-964
Docker-OSX 提供选项来自定义虚拟网络适配器,以兼顾性能或兼容性
对于需要直接网络访问的安装,您可能需要在主机上启用 IPv4 转发
Fedora 用户可能需要额外的防火墙配置
来源: README.md971-996 README.md1100-1107
硬件直通图
来源: README.md1580-1634 README.md1190-1212
要将 USB 设备传递给 macOS,首先需要在主机系统上识别它
然后使用适当的 Docker 和 QEMU 参数
Docker-OSX 支持通过两种方法实现 iPhone 连接
USBFLUXD 直通图
设置过程需要
在主机系统上
在 macOS 虚拟机中
来源: README.md274-366
Docker-OSX 支持 PulseAudio 以实现声音输出
适用于 Windows WSLg 用户
来源: README.md887-923
要在 macOS 虚拟机中挂载物理磁盘或磁盘映像
Docker-OSX 提供多种文件夹共享方法
SSHFS(推荐)
9P 文件系统
NFS 共享
来源: README.md999-1069 README.md264-271
无头操作图
来源: README.md1729-1777 README.md1752-1820
要无头运行 Docker-OSX,请省略 X11 显示参数
用于自动登录和命令执行
来源: README.md1729-1741 README.md1686-1722
要启用 VNC 访问
在 QEMU 控制台(按 Enter 键访问)中,设置 VNC 密码
change vnc password myvncpassword
然后使用任何 VNC 客户端连接到 localhost:5999。
SPICE 为 VNC 提供了远程访问的替代方案
使用 SPICE 客户端连接
通过 Telnet 访问 QEMU Monitor 以进行底层控制
连接到 QEMU Monitor
为提高无头环境中的性能
启用无启动菜单的自动启动
禁用不必要的 macOS 服务
使用OSX Optimizer 脚本可实现额外的性能改进。
来源: README.md368-376 README.md1886-1910
为了启用 iMessage、iCloud 和其他 Apple 服务,Docker-OSX 提供了生成和使用唯一硬件标识符的工具
序列号架构图
Docker-OSX 在与序列号生成一起使用时支持自定义显示分辨率
常见分辨率选项
| 宽度 | 高度 | 备注 |
|---|---|---|
| 800 | 600 | 基本兼容性 |
| 1280 | 768 | 类似笔记本 |
| 1600 | 900 | 高清分辨率 |
| 1920 | 1080 | 全高清 |
| 2560 | 1600 | 高 DPI |
使用 EXTRA 环境变量将附加参数传递给 QEMU
常见的 QEMU 自定义包括
针对 CI/CD 环境,优化 Docker-OSX 镜像的性能和大小
sudo trimforce enabledd if=/dev/zero of=./empty && rm -f emptyDocker-OSX 提供用于 Kubernetes 部署的 Helm chart。有关详细说明,请参阅部署选项。
Kubernetes 部署的关键特性
对于生产部署,请考虑
将 Docker 存储移至外部驱动器
为持久化的 macOS 磁盘使用卷挂载
Docker-OSX 需要硬件虚拟化支持。对于云部署
高级 Docker-OSX 配置的常见问题和解决方案
内存分配问题
USB 设备检测问题
网络连接问题
无头模式故障
刷新此 Wiki
最后索引时间2025 年 4 月 18 日(e962dc)