使用Docker-OSX在虛擬機上安裝macOS Big Sur或Catalina

Docker-OSX 這是一個在Docker容器中使用OSX-KVM在接近本機狀態下運行macOS的項目。您可以使用它在QEMU虛擬機中(通過Docker)安裝macOS並運行macOS Catalina或Big Sur桌面,或啟動OS X Shell。

Docker-OSX項目提供了四個Docker映像:

  • sickcodes/docker-osx:latest -使用macOS Catalina的原始基礎恢復映像
  • sickcodes/docker-osx:big-sur -使用macOS Big Sur的原始基礎恢復映像
  • sickcodes/docker-osx:naked -提供您自己的.img文件( -v "${PWD}/disk.img:/image")。
  • sickcodes/docker-osx:auto -大型(〜19.4GB)Docker映像啟動到OSX Shell中(啟用SSH,使用用戶作為用戶名,使用alpine作為密碼。此映像需要大約50GB的磁盤空間來運行)

功能包括:

  • X11轉移
  • 全自動模式:您也可以直接啟動OSX Shell並執行命令作為運行時參數。
  • Kubernetes舵圖。查看 .. /頭盔
  • SSH開啟 localhost:50922
  • VNC版本 localhost:8888VNC版本 (由於與使用VNC相關的安全風險,因此位於單獨的目錄中)
  • 使用docker commit在完全相同的容器中創建一個ARMY
  • Xfvb無頭模式

此項目的各種調整包括轉發其他端口,更改屏幕分辨率,啟用網絡轉發,允許USB直通,使用創建的大圖像和使用自己的圖像的快速入門步驟,等等(步驟均在項目頁面上) 。

從一開始就值得注意的是,Apple不允許在非Apple硬件上安裝macOS。因此,該操作系統必須安裝在Apple硬件上才能合法使用。另外,要使用它,您計算機的CPU必須支持硬件虛擬化。 請參閱KVM清單 從這裡 檢查CPU是否支持它(如果一切正常,您也可以運行sudo kvm -ok,它返回“ KVM加速可用”)。

在我的Ubuntu 20.10桌面上, sickcodes/docker-osx:big-sur 該圖像耗時約55分鐘。 Docker映像需要約3.2GB的磁盤空間,這需要使用約35GB的容器空間。

另請查看Sosumi,這是一個可輕鬆在Linux上的虛擬機上下載和安裝macOS Catalina的軟件包。這也使用QEMU + KVM。 macOS-簡單-KVM.. 值得注意的是,Sosumi自首次發布以來就沒有進行過更新。

以下是使用Docker(Docker-OSX)運行基於macOS(Catalina或Big Sur)的恢復映像,安裝並運行macOS(您可以選擇設置自定義分辨率的選項。如果未指定,將使用1920×1080)。也有刪除容器的步驟。

您可能還會喜歡:LazyDocker:Docker和Docker構成了終端UI

如何使用Docker-OSX在QEMU + KVM上安裝macOS(OSX)

1.先決條件。

在繼續之前,請確保您的計算機支持硬件虛擬化並且已在BIOS中將其啟用( sudo kvm-ok 如果一切正常,則返回“ KVM加速可用”。完成此操作後,您可以繼續執行下面的其餘步驟。

首先要確保您有 Docker已安裝 (另請參見公式 Docker安裝文檔)。

安裝QEMU 在主機系統上,如果尚未執行此操作。您可能還需要使用將用戶添加到kvm組。 sudo usermod -aG kvm $USER 為了使其正常工作。

請繼續閱讀本文中的評論,以粗略估算所需的磁盤空間。為了 sickcodes/docker-osx:auto 要使用它,您需要大約50GB的磁盤空間。

2.啟動Docker-OSX。

使用Docker-OSX運行macOS Big Sur或Catalina(有關其他選項,請參閱Docker-OSX項目頁面-例如,您可以運行它 無頭,使用原始圖像病碼/ docker-osx:最新運行以允許SSH到macOS,等等;也請檢查這些 自定義QEMU參數 可用於設置CPU內核數,可用RAM等):

  • 運行macOS Big Sur( WIDTHHEIGHT 用於macOS Big Sur虛擬機的屏幕分辨率的值。我使用的是下面的1600×900),我使用的是基本恢復映像:
docker run -it     --device /dev/kvm     -p 50922:10022     -e GENERATE_UNIQUE=true     -e DEVICE_MODEL="iMacPro1,1"     -e WIDTH=1600     -e HEIGHT=900     -v /tmp/.X11-unix:/tmp/.X11-unix     -e "DISPLAY=${DISPLAY:-:0.0}"     sickcodes/docker-osx:big-sur
  • 運行macOS Catalina( WIDTHHEIGHT 用於macOS Big Sur虛擬機的屏幕分辨率的值。我使用的是下面的1600×900),我使用的是基本恢復映像:
docker run -it     --device /dev/kvm     -p 50922:10022     -e GENERATE_UNIQUE=true     -e DEVICE_MODEL="iMacPro1,1"     -e WIDTH=1600     -e HEIGHT=900     -v /tmp/.X11-unix:/tmp/.X11-unix     -e "DISPLAY=${DISPLAY:-:0.0}"     sickcodes/docker-osx:latest

這可能需要幾分鐘的時間。

上面的Docker執行命令使用基本選項在使用Docker的QEMU中引導macOS(基本恢復映像,用於安裝macOS)。這是由Docker-OSX項目頁面提供的,其中添加了屏幕分辨率選項。如果刪除 GENERATE_UNIQUEDEVICE_MODELWIDTHHEIGHT 如果選擇該選項,則虛擬機將使用默認(1920×1080)屏幕分辨率。

3.使用磁盤工具格式化最大的QEMU HARDDISK。

幾分鐘後,macOS虛擬機將啟動。 啟動macOS基本系統並 Disk Utility 從菜單中:

macOS QEMUDocker磁盤實用程序

然後,在“磁盤工具”工具中,檢查兩個QEMU HARDDISK介質左側的最大硬盤,然後單擊最大硬盤(用於測試該版本的版本為214.75 GB)。

提示:按下以在QEMU虛擬機中釋放鼠標。 Ctrl + Alt + g (在某些情況下,僅此而已 Ctrl + g)。

然後點擊 Erase 要格式化此硬盤,請單擊“磁盤工具”工具欄上的按鈕。

macOS QEMUDocker磁盤實用程序

設置磁盤的名稱(例如“ macOS”),並將其他選項保留為默認值(格式:macFS Big Sur的APFS,macOS Catalina的MacOS Extended(日誌式),模式均為GUID分區圖。) 。

一旦最大QEMU HDD被擦除[ディスクユーティリティ]關閉對話框。

4.在虛擬機上安裝macOS。

關閉“磁盤工具”後,將再次顯示允許您啟動“磁盤工具”等的菜單。但是,這一次您需要選擇以下選項: Reinstall macOS Big Sur (或者,如果您使用的是 sickcodes/docker-osx:latest 具有Catalina的圖片,此選項僅稱為 Reinstall macOS):

重新安裝macOS QEMU Docker

點擊 Continue,然後 Agree,將出現一個屏幕,您可以在其中選擇在步驟3中格式化的HDD(將使用您在擦除時輸入的名稱來顯示它,例如: macOS 在此示例中)。 選擇硬盤,然後單擊 Continue

macOS QEMUDocker選擇磁盤

macOS Big Sur / Catalina的安裝(取決於您選擇的映像)將開始。

安裝macOS QEMU Docker

一段時間後,macOSX虛擬機將重新啟動。請選擇 macOS Installer 啟動時輸入:

macOS QEMUDocker安裝程序

安裝完成後,該引導條目將只是“ macOS”,您將能夠在虛擬機內部啟動新的macOS安裝。

macOS QEMU Docker macOS啟動菜單

接下來,您需要選擇一個國家或地區,可以選擇使用Apple ID登錄,接受條款和條件,並創建一個計算機帳戶(用戶名和密碼)。

請注意,在首次安裝macOS並啟動後,我不得不選擇兩次macOS條目(第一次選擇後便重新啟動了)。另外,在macOS安裝過程中會有鼠標延遲(和常見延遲),但是當我運行已安裝的macOS虛擬機時,這在我的計算機上消失了(或變得不太明顯(取決於硬件))。

5.啟動新安裝的macOS虛擬機。

如果要啟動新安裝的macOS虛擬機 docker ps -a 要檢查容器ID和名稱:

docker ps -a

然後啟動容器。

docker start Container_ID_or_Name

交換 Container_ID_or_Name 使用通過上一條命令獲得的容器ID或名稱。

您可能還會喜歡:Portainer:用於遠程或本地使用的基於Web的Docker GUI

如何刪除Docker-OSX

因此,我決定刪除Docker-OSX。首先運行以下命令以獲取Docker容器名稱和ID的列表。

docker container ls -a

使用此命令來標識要刪除的容器。然後使用以下命令停止並刪除容器:

docker container stop ID_or_Image

docker container rm ID_or_Image

交換 ID_or_Image 使用通過上一條命令獲得的容器ID或圖像。

要刪除Docker-OSX映像,請使用以下命令列出現有的Docker映像:

docker image ls

然後使用以下命令刪除Docker-OSX映像:

docker image rm Image_ID

交換 Image_ID 使用通過上一條命令獲得的圖像ID。

通過 cerebrux.net (GR)

Sidebar