-
技术解析:
-
Docker-OSX的核心技术基于QEMU(一款开源的全虚拟化解决方案)和Docker的结合。QEMU允许在一个操作系统中模拟另一个操作系统,而Docker则提供了容器化的环境,使得应用可以在隔离的环境中运行。
-
该项目使用vboxManage创建一个名为osx-vm的虚拟磁盘,并将其挂载到Docker容器中。随后,通过QEMU加载虚拟磁盘,并通过docker exec命令将shell会话连接到VM,实现对mac OS的交互。
-
应用场景:
-
跨平台测试:对于开发面向Mac的应用的开发者来说,Docker-OSX项目可以让他们在非Mac设备上进行测试和调试,无需拥有物理的Mac硬件。
-
教育与学习:如果你想要了解Mac OS的工作机制,但没有条件购买实体设备,Docker-OSX是一个理想的实验平台。
-
特点:
进入虚拟机Ubuntu,分别输入以下指令检查虚拟化是否启用:
%ignore_pre_1%
虚拟环境开启后,下一步是使用Docker安装部署,操作步骤:安装Docker、创建docker-compose.yml、启动容器运行镜像。
安装docker
%ignore_pre_1%
创建docker-compose.yml
在Home目录创建docker-compose.yml,编写以下配置并保存:
version: '3' services: docker-osx: image: sickcodes/docker-osx:latest devices: - "/dev/kvm" ports: - "50922:10022" volumes: - "/tmp/.X11-unix:/tmp/.X11-unix" environment: - "DISPLAY=${DISPLAY:-:0.0}
启动容器运行镜像
sudo docker-compose up -d
快速搭建
除了使用docker-compose部署之外,还可使用Docker指令搭建。
sudo 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
由于容器镜像都比较大,拉取时间会比较久。而且部署镜像会占用较大的空间,注意预留空间避免部署失败。部署完成后会自动调用虚拟机窗口运行macos系统。
刚进入MacOS时无法直接进入系统,必须重新安装。选择最下面的磁盘管理工具 把第一个虚拟磁盘格式化成APfS格式(或者参照网上教程格式化成其它对应格式)
关闭磁盘管理工具,选择重新安装系统,选择格式化的磁盘进行系统安装 系统安装完毕就可以使用苹果系统了,根据官方文档,还可以进行文件互通的,命令设置
# on Linux/Windows mkdir ~/mnt/osx sshfs user@localhost:/ -p 50922 ~/mnt/osx # wait a few seconds, and ~/mnt/osx will have full rootfs mounted over ssh, and in userspace # automated: sshpass -p <password> sshfs user@localhost:/ -p 50922 ~/mnt/osx
暂无评论内容