在數字化和開發人員快速迭代的今日,擁有一個便捷、高效的開發環境成為每個開發者夢寐以求的事情。特別是在需要操作多個系統、開發跨平臺應用時,調試和測試的便利性顯得尤為重要。今天為大家介紹的這款開源項目,正是一個解決此類問題的利器——將macOS置于Docker容器中運行。
什么是OSX in Docker?
這個開源項目的核心目標就是在Docker容器中運行完整的macOS系統。通過這樣的方式,開發者可以在非蘋果設備上運行macOS,為跨平臺開發、測試提供了一種高效、靈活的環境。
主要特性?
- KVM硬件加速:通過KVM技術的支持,使得macOS在虛擬化環境中可以更快地運行。
- 基于Web的查看器:只需通過瀏覽器即可訪問macOS界面,方便管理和操作。
- 自動下載:簡化安裝過程,可以自動從網絡獲取系統鏡像,并完成之后的安裝步驟。
使用方法🐳
使用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 條款,這意味著你只能在蘋果的硬件上運行,否則可能違反其使用條款。
類似項目介紹
- dockur/windows:允許在Docker容器中運行Windows系統,支持自動化安裝和良好的性能加速。
- qemus/qemu:通過該項目可以在容器中運行Linux桌面,在使用上與macOS項目類似,適合需要多系統環境的開發者。
通過以上內容的詳細介紹,相信大家對macOS in Docker項目有了更清晰的認識和了解。對于需要在多平臺間進行開發調試的開發者,這無疑是一個不可多得的利器。快去嘗試在你的開發環境中部署吧!