Docker-OSX(Docker中的macOS虚拟机)简介
Docker-OSX 是一个Docker中的macOS虚拟机,能够让我们在Docker中运行功能齐全的 macOS 虚拟机。这让我们可以在 Linux 和 Windows 系统上使用 macOS,无需购买 Apple 硬件。该项目非常适合以下几种用途:
1. macOS 应用程序开发:使用 Xcode、Interface Builder 等 macOS 专有工具在 Docker 容器中构建和测试 macOS 应用程序,而无需专用的 Mac 硬件。
2. macOS 安全研究: 该项目提供了一种在隔离的 Docker 环境中研究 macOS 的方法,允许安全研究人员分析 macOS 系统和应用程序,而不会影响主机系统。Docker-OSX 还支持 USB 热插拔,可连接 iPhone 等 Apple 设备进行安全测试。
3. 持续集成/持续交付 (CI/CD): 通过在 CI/CD 中整合 Docker-OSX,可在 macOS 环境下自动化构建、测试和部署过程,提高效率。
4. 兼容性测试: 在 Docker-OSX 中运行不同版本的 macOS,测试您的应用程序或网站在多个 macOS 发行版上的兼容性。
该工具通过使用 QEMU 和 KVM 在 Docker 容器内虚拟化 macOS,并提供了诸如 X11 图形界面转发、VNC 远程访问等功能。支持手动或自动生成序列号以避免系统过期,并可与 OpenCore 启动加载程序等最新技术集成。
Docker-OSX(Docker中的macOS虚拟机)官网及部署
- 官网:https://github.com/sickcodes/Docker-OSX
Catalina部署:
# docker build -t docker-osx .
docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
sickcodes/docker-osx:latest
Big Sur部署:
docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
sickcodes/docker-osx:big-sur
# docker build -t docker-osx --build-arg SHORTNAME=big-sur .
Monterey部署:
docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
-e GENERATE_UNIQUE=true \
-e MASTER_PLIST_URL='https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-custom.plist' \
sickcodes/docker-osx:monterey
# docker build -t docker-osx --build-arg SHORTNAME=monterey .
Ventura部署:
docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
-e GENERATE_UNIQUE=true \
-e MASTER_PLIST_URL='https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-custom.plist' \
sickcodes/docker-osx:ventura
# docker build -t docker-osx --build-arg SHORTNAME=ventura .
Sonoma部署:
docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
-e GENERATE_UNIQUE=true \
-e CPU='Haswell-noTSX' \
-e CPUID_FLAGS='kvm=on,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on' \
-e MASTER_PLIST_URL='https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-custom-sonoma.plist' \
sickcodes/docker-osx:sonoma
# docker build -t docker-osx --build-arg SHORTNAME=sonoma .