Docker 容器内的 OSX(macOS)

Docker 容器内的 OSX(macOS)

spirit_zx
1年前发布

m1q82ht1.png

特点✨

  • KVM加速
  • 基于 Web 的查看器
  • 自动下载

用法🐳

通过 Docker Compose:

services:
  macos:
    image: dockurr/macos
    container_name: macos
    environment:
      VERSION: "ventura"
    devices:
      - /dev/kvm
    cap_add:
      - NET_ADMIN
    ports:
      - 8006:8006
      - 5900:5900/tcp
      - 5900:5900/udp
    stop_grace_period: 2m

通过 Docker CLI:

docker run -it --rm -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 dockurr/macos

通过 Kubernetes:

kubectl apply -f kubernetes.yml

常见问题解答💬

我如何使用它?

非常简单!步骤如下:

  • 启动容器并使用您的 Web 浏览器连接到端口 8006 。
  • 选择 Disk Utility 然后选择最大的 Apple Inc. VirtIO Block Media 磁盘。
  • 单击 Erase 按钮格式化磁盘,并为其指定任何您喜欢的可识别的名称。
  • 关闭当前窗口并单击 继续安装 Reinstall macOS
  • 当提示您要安装在哪里时,选择您刚刚创建的磁盘。
  • 复制所有文件后,选择您的地区、语言和帐户设置。
  • 享受您的全新机器,并且不要忘记为这个 repo 加星标!

如何选择 macOS 版本?

默认情况下,将安装 macOS Ventura。但您可以将 VERSION 环境变量添加到 Compose 文件中,以指定要下载的备用 macOS 版本:

environment:
VERSION: "ventura"
从以下值中选择:

版本
sequoiamacOS Sequoia
sonomamacOS Sonoma
venturamacOS Ventura
montereymacOS Monterey
big-surmacOS Big Sur

如何更改存储位置?

要更改存储位置,请在撰写文件中包括以下绑定挂载:

volumes:
  - /var/osx:/storage

将示例路径替换 /var/osx 为所需的存储文件夹。

如何更改磁盘大小?

要扩展 64 GB 的默认大小,请将 DISK_SIZE 设置添加到您的撰写文件中,并将其设置为您的首选容量:

environment:
  DISK_SIZE: "256G"

提示:
这也可以用于将现有磁盘调整为更大的容量而不会丢失任何数据。

如何更改 CPU 或 RAM 的数量?

默认情况下,容器最多允许使用 2 个 CPU 核心和 4 GB RAM。

如果您想调整这个,您可以使用以下环境变量指定所需的数量:

environment:
  RAM_SIZE: "8G"
  CPU_CORES: "4"

如何直通 USB 设备?

要直通 USB 设备,首先通过 lsusb 命令查找其供应商和产品 ID,然后将它们添加到您的撰写文件中,如下所示:

environment:
  ARGUMENTS: "-device usb-host,vendorid=0x1234,productid=0x1234"
devices:
  - /dev/bus/usb

如何验证我的系统是否支持 KVM?
要验证您的系统是否支持 KVM,请运行以下命令:

sudo apt install cpu-checker
sudo kvm-ok

如果您收到错误, kvm-ok 指示无法使用 KVM 加速,请检查:

  • 您的 BIOS 中已启用虚拟化扩展( Intel VT-xAMD SVM )。
  • 您正在使用支持它们的操作系统,例如 Linux 或 Windows 11(不幸的是,macOS 和 Windows 10 不支持)。
  • 如果您在虚拟机内运行容器,则您启用了“嵌套虚拟化”。
  • 您没有使用云提供商,因为大多数云提供商不允许其 VPS 进行嵌套虚拟化。

如果您根本没有收到任何错误 kvm-ok ,但容器仍然抱怨 /dev/kvm 缺少内容,则将其添加 privileged: true 到您的撰写文件(或 --privileged 您的 run 命令)中可能会有所帮助,以排除任何权限问题。

© 版权声明
THE END
喜欢就支持一下吧
点赞 0 分享 收藏
评论 抢沙发
取消
易航博客