当前位置: 首页 > ds >正文

在Docker中运行macOS的超方便体验!

在数字化和开发人员快速迭代的今日,拥有一个便捷、高效的开发环境成为每个开发者梦寐以求的事情。特别是在需要操作多个系统、开发跨平台应用时,调试和测试的便利性显得尤为重要。今天为大家介绍的这款开源项目,正是一个解决此类问题的利器——将macOS置于Docker容器中运行。

什么是OSX in Docker?

这个开源项目的核心目标就是在Docker容器中运行完整的macOS系统。通过这样的方式,开发者可以在非苹果设备上运行macOS,为跨平台开发、测试提供了一种高效、灵活的环境。

主要特性✨

  1. KVM硬件加速:通过KVM技术的支持,使得macOS在虚拟化环境中可以更快地运行。
  2. 基于Web的查看器:只需通过浏览器即可访问macOS界面,方便管理和操作。
  3. 自动下载:简化安装过程,可以自动从网络获取系统镜像,并完成之后的安装步骤。

使用方法🐳

使用Docker Compose

通过Docker Compose,你可以非常方便地启动和管理macOS容器。下面是一个简单的Docker Compose文件配置:

services:macos:image: dockurr/macoscontainer_name: macosenvironment:VERSION: "13"devices:- /dev/kvm- /dev/net/tuncap_add:- NET_ADMINports:- 8006:8006- 5900:5900/tcp- 5900:5900/udpvolumes:- ./macos:/storagerestart: alwaysstop_grace_period: 2m
使用Docker CLI

如果你更习惯于命令行操作,下面的Docker命令行也可以快速启动一个macOS容器:

docker run -it --rm --name macos -p 8006:8006 --device=/dev/kvm --device=/dev/net/tun --cap-add NET_ADMIN -v "${PWD:-.}/macos:/storage" --stop-timeout 120 dockurr/macos
在Kubernetes中运行

对容器编排有需求的用户可以选择在Kubernetes集群中部署macOS:

kubectl apply -f https://raw.githubusercontent.com/dockur/macos/refs/heads/master/kubernetes.yml
Github Codespaces

如果你已经在使用GitHub Codespaces,你可以通过该平台快速创建和使用macOS容器。

(https://codespaces.new/dockur/macos)

常见问题解答💬

如何开始使用?

启动容器后,在浏览器中访问http://127.0.0.1:8006/,选择磁盘工具,选择最大的Apple Inc. VirtIO Block Media磁盘。点击抹掉按钮,以APFS格式化磁盘,命名自定义名称。然后进行macOS的安装。当被问及安装位置时,选择刚创建的磁盘。

如何选择macOS的版本?

默认情况下,容器将安装macOS 13 (Ventura)。你可以通过VERSION环境变量来指定安装的macOS版本:

environment:VERSION: "13"

支持的macOS版本包括:

  • 15 - macOS 15 (Sequoia)
  • 14 - macOS 14 (Sonoma)
  • 13 - macOS 13 (Ventura)
  • 12 - macOS 12 (Monterey)
  • 11 - macOS 11 (Big Sur)

如何更改存储位置?

你可以通过修改compose文件中的绑定挂载来更改存储位置:

volumes:- ./macos:/storage

如何调整磁盘大小?

默认磁盘大小为64 GB,若需更大容量,可以在compose文件中添加DISK_SIZE设置:

environment:DISK_SIZE: "256G"

如何更改CPU和内存大小?

默认情况下,容器将使用最多2个CPU核心和4 GB内存。可以通过以下环境变量来调整配置:

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

如何为容器分配独立的IP地址?

为了为容器分配单独的IP地址,可以创建一个macvlan网络:

docker network create -d macvlan \--subnet=192.168.0.0/24 \--gateway=192.168.0.1 \--ip-range=192.168.0.100/28 \-o parent=eth0 vlan

在创建网络后,修改compose文件以加入新的网络配置:

services:macos:container_name: macosnetworks:vlan:ipv4_address: 192.168.0.100networks:vlan:external: true

如何共享主机的文件?

使用以下方式将主机目录映射为共享文件夹:

volumes:- ./example:/shared

启动macOS后执行以下命令挂载共享文件夹:

sudo -S mount_9p shared

macOS in Docker 的法律问题

使用此项目需遵守所在地区的法律法规,项目本身遵循开源协议,未包含任何受著作权保护的材料。然而,安装和运行苹果的macOS要求用户同意 Apple’s EULA 条款,这意味着你只能在苹果的硬件上运行,否则可能违反其使用条款。

类似项目介绍

  1. dockur/windows:允许在Docker容器中运行Windows系统,支持自动化安装和良好的性能加速。
  2. qemus/qemu:通过该项目可以在容器中运行Linux桌面,在使用上与macOS项目类似,适合需要多系统环境的开发者。

通过以上内容的详细介绍,相信大家对macOS in Docker项目有了更清晰的认识和了解。对于需要在多平台间进行开发调试的开发者,这无疑是一个不可多得的利器。快去尝试在你的开发环境中部署吧!

http://www.xdnf.cn/news/15213.html

相关文章:

  • macOS 上安装 Miniconda + Conda-Forge
  • 如何将多个.sql文件合并成一个:Windows和Linux/Mac详细指南
  • Linux:库的原理
  • Qt使用脚本实现GUI扩展技术详解
  • 阿里云-跨账号同步OSS Bucket
  • STM32-ADC
  • 面试技术问题总结一
  • 定位模拟的详细步骤
  • 医院多部门协同构建知识库-指南库-预测模型三维网络路径研究
  • 深入剖析C++ RPC框架原理:有栈协程与分布式系统设计
  • 服务器内核级故障排查
  • 脑科学圈| 利用眼动追踪评估演讲情境下焦虑障碍儿童的注视行为
  • 用 LangChain4j 从零实现 RAG:基于 PDF 文档的智能问答系统
  • 1.2.3_1 OSI参考模型
  • Java设计模式之行为型模式(观察者模式)介绍与说明
  • 【Linux系统】冯诺依曼体系结构 | 初识操作系统
  • 易基因:血浆ChIP-seq的cfDNA组蛋白修饰分析揭示晚期前列腺癌表型和临床异质性|Cancer Res/IF16.6
  • 记一次Android Studio编译报错:Execution failed for task ‘:app:compileDebugAidl‘
  • 中国农作物收获面积空间栅格(1KM分辨率)数据(含16种作物:玉米、小麦、水稻、大豆等)
  • chrony时间同步
  • searxng 对接openweb-UI实现大模型通过国内搜索引擎在线搜索
  • 通过 .NET Aspire 使用本地 AI 模型
  • 从 SEO 到 GEO:2025 电商搜索新战场|产品 SERP 的 AI 征服指南
  • Docker的/var/lib/docker/目录占用100%的处理方法
  • esp8266-01S实现PPM波形
  • Linux指令与权限
  • SQL138 连续两次作答试卷的最大时间窗
  • 【C语言】学习过程教训与经验杂谈:思想准备、知识回顾(六)
  • Flask 入门教程:用 Python 快速搭建你的第一个 Web 应用
  • kotlin中集合的用法