Docker-OSX 开源地址:https://github.com/sickcodes/Docker-OSX
Docker Hub:https://hub.docker.com/r/pcmid/docker-osx
想象一下,作为一名开发者或者安全研究人员,当需要测试或研究macOS应用,但手头又没有Mac设备时,是不是觉得特别头疼? 这里分享一个超级硬核的黑科技项目 -<font style="color:rgb(255, 93, 108);">Docker-OSX</font>
,可以在Linux或Windows上也能愉快地玩耍macOS了。
项目简介
<font style="color:rgb(255, 93, 108);">Docker-OSX</font>
是一个利用QEMU(一款开源的全虚拟化解决方案)和Docker结合的强大工具。Docker-OSX 项目利用 Docker 容器技术结合 KVM 虚拟化加速,使得在非 Apple 硬件上运行 macOS 成为可能,项目使用了 OpenCore 引导加载程序,确保了系统的稳定性和兼容性。它的目标很简单:为非Mac用户提供一个接近原生性能的macOS测试和开发环境。
Docker-OSX 特别适合在 macOS 不常见的硬件(例如 Linux 或 Windows 机器)上尝试 macOS 系统。想象一下,在Windows笔记本上流畅运行macOS,是不是很酷?
目前项目在Github上收获了46.2K star!
性能特色
- 接近原生性能:利用KVM技术,Docker-OSX能够提供高效的虚拟化性能,让你几乎感受不到与真实Mac设备的差异。
- X11转发:支持图形界面的应用程序,通过X11转发,在本地就能直接显示macOS上的图形界面,无需额外的虚拟化层,操作流畅自如。
- USB设备集成:支持USB设备的连接和调试,比如可以直接在Docker-OSX中连接iPhone进行开发或调试,是不是很方便?
- 安全研究支持:对于安全研究人员来说,Docker-OSX提供了iMessage等安全研究的便利环境,可以在不破坏真实系统的情况下,进行各种安全测试。
- CI/CD集成:支持持续集成/持续部署(CI/CD)流程,确保macOS应用在不同环境下的稳定性和兼容性。
- 多版本支持:无论是Catalina、Big Sur还是最新的Ventura,Docker-OSX都支持,满足不同场景的需求。
主要功能
- 跨平台支持:Docker-OSX 可以在任何支持 Docker 的操作系统上运行,包括 Linux 和 Windows,让用户无需购买苹果硬件即可体验 macOS。
- 虚拟化加速:利用 KVM(Kernel-based Virtual Machine)技术,Docker-OSX 提供了接近原生的性能体验。
- Web 界面访问:通过内置的 VNC 服务器,用户可以通过 Web 浏览器远程访问 macOS 桌面环境,无需安装额外的客户端软件。
- 自动化安装:Docker-OSX 提供了自动化的安装流程,包括自动下载 macOS 镜像和配置虚拟机。
- 自定义配置:用户可以根据自己的需求自定义 macOS 版本、分配给虚拟机的 CPU 核心数、内存大小、磁盘空间等。
- 易于管理:通过 Docker 命令行工具,用户可以轻松地启动、停止和管理 macOS 容器。
- 版本控制:支持多个 macOS 版本,用户可以根据需要选择不同的版本进行安装和使用。
- 安全性:Docker 容器的隔离特性确保了运行在容器中的 macOS 系统与宿主机系统之间的安全隔离。
- 资源共享:Docker-OSX 允许用户在容器和宿主机之间共享文件,方便数据传输和应用开发。
快速安装使用
要在非Mac电脑上用Docker运行macOS,最好提前准备:- 一台电脑:只要不是太老旧,支持虚拟化技术的CPU(大多数现代CPU都支持)。
- 启用BIOS里的虚拟化:重启电脑,进入BIOS设置,找到虚拟化选项并启用。
- 安装Docker:去Docker官网下载安装程序,按照步骤安装。
- 已安装 QEMU(部分系统需要)
- 足够的磁盘空间:至少准备20GB,给macOS虚拟机用。
- 网络连接:能上网就行,因为需要从Docker Hub下载macOS镜像。
- 一点耐心:虽然步骤不多,但可能需要一些时间来完成。
Windows 用户到 docker 官网可以下载 Docker Desktop for Windows 来安装,要确保启用了 WSL 2。 安装 QEMU(仅限部分 Linux 系统) 某些 Linux 系统可能需要单独安装 QEMU:
sudo systemctl start docker
准备好这些,就可以开始安装Docker-OSX了。安装过程其实就几个命令,一步步来。 接下来,根据需要选择安装的具体macOS版本,不同版本通过镜像tag区分。比如:Catalina (10.15) 使用 docker pull 命令拉取 Docker-OSX 镜像:
sudo apt install qemu qemu-kvm libvirt-clients libvirt-daemon-system
使用 docker run 命令启动:
docker pull sickcodes/docker-osx
docker run --privileged \
-e "DISPLAY=${DISPLAY:-:0.0}" \
-v /tmp/.X11-unix:/tmp/.X11-unix \
sickcodes/docker-osx
Big Sur (11)
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
之后通过VNC客户端连接到
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 .
<font style="color:rgb(255, 93, 108);">localhost:50922</font>
,macOS世界就展现出来了。
安装界面如下
<font style="color:rgb(255, 93, 108);">Docker-OSX</font>
是一个集创新、实用和便捷于一身的开源项目。它提供了一个接近原生性能的macOS测试和开发环境,极大地降低了硬件成本和学习门槛。作为开发者或安全研究人员,如果还没有尝试过Docker-OSX,推荐去试一试!