3P by neo 2달전 | favorite | 댓글 1개

Docker-OSX

Docker-OSX 소개

  • Docker-OSX는 Docker 컨테이너에서 macOS를 실행할 수 있게 해주는 프로젝트임.
  • X11 포워딩, iMessage 보안 연구, iPhone USB 작동 등 다양한 기능을 제공함.
  • Linux와 Windows에서 macOS 보안 연구를 수행할 수 있음.

커뮤니티 및 지원

  • Docker-OSX는 Discord와 Telegram 서버를 운영 중임.
  • 질문이나 아이디어를 공유할 수 있는 활발한 커뮤니티가 있음.
  • 개인적인 문의는 LinkedIn이나 Sick.Codes 웹사이트를 통해 가능함.

저자 및 기여자

  • 이 프로젝트는 Sick.Codes가 유지 관리함.
  • 추가 기여자 목록은 GitHub에서 확인 가능함.
  • OSX-KVM과 KVM-OpenCore 프로젝트에 감사의 인사를 전함.

빠른 시작 가이드

  • 비디오 설치 튜토리얼 제공.
  • Windows 사용자는 추가 노트를 확인할 것.
  • Catalina, Big Sur, Monterey, Ventura, Sonoma 등 다양한 macOS 버전을 지원함.

Catalina

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

Big Sur

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

Monterey

docker run -it \
  --device /dev/kvm \
  -p 50922:10022 \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -e "DISPLAY=${DISPLAY:-:0.0}" \
  -e GENERATE_UNIQUE=true \
  -e MASTER_PLIST_URL='https://raw.githubusercontent.com/sickcodes/osx-serial-generator/…' \
  sickcodes/docker-osx:monterey

Ventura

docker run -it \
  --device /dev/kvm \
  -p 50922:10022 \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -e "DISPLAY=${DISPLAY:-:0.0}" \
  -e GENERATE_UNIQUE=true \
  -e MASTER_PLIST_URL='https://raw.githubusercontent.com/sickcodes/osx-serial-generator/…' \
  sickcodes/docker-osx:ventura

Sonoma

docker run -it \
  --device /dev/kvm \
  -p 50922:10022 \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -e "DISPLAY=${DISPLAY:-:0.0}" \
  -e GENERATE_UNIQUE=true \
  -e CPU='Haswell-noTSX' \
  -e CPUID_FLAGS='kvm=on,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on' \
  -e MASTER_PLIST_URL='https://raw.githubusercontent.com/sickcodes/osx-serial-generator/…' \
  sickcodes/docker-osx:sonoma

Catalina 사전 설치

docker pull sickcodes/docker-osx:auto
docker run -it \
  --device /dev/kvm \
  -p 50922:10022 \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -e "DISPLAY=${DISPLAY:-:0.0}" \
  -e GENERATE_UNIQUE=true \
  sickcodes/docker-osx:auto

구형 시스템

High Sierra

docker run -it \
  --device /dev/kvm \
  -p 50922:10022 \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -e "DISPLAY=${DISPLAY:-:0.0}" \
  sickcodes/docker-osx:high-sierra

Mojave

docker run -it \
  --device /dev/kvm \
  -p 50922:10022 \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -e "DISPLAY=${DISPLAY:-:0.0}" \
  sickcodes/docker-osx:mojave

이미지 수동 다운로드 및 사용

  • Docker의 CDN이 느릴 경우 수동으로 이미지를 다운로드하여 사용할 수 있음.
wget https://images2.sick.codes/mac_hdd_ng_auto.img
docker run -it \
  --device /dev/kvm \
  -p 50922:10022 \
  -v "${PWD}/mac_hdd_ng_auto.img:/image"; \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -e "DISPLAY=${DISPLAY:-:0.0}" \
  -e GENERATE_UNIQUE=true \
  -e MASTER_PLIST_URL=https://raw.githubusercontent.com/sickcodes/Docker-OSX/… \
  sickcodes/docker-osx:naked

iPhone USB 패스스루

  • iPhone USB 패스스루를 위한 다양한 방법 제공.
  • 데스크탑 PC에서는 @Silfalion의 지침을 따를 수 있음.
  • 노트북에서는 usbfluxd를 사용하여 네트워크 스타일 패스스루 가능.

성능 최적화

  • osx-optimizer를 사용하여 성능을 향상시킬 수 있음.
  • GUI 로그인 화면 건너뛰기, Spotlight 인덱싱 비활성화 등 다양한 최적화 옵션 제공.

디스크 공간 증가

  • /var/lib/docker를 외부 드라이브로 이동하여 디스크 공간을 확보할 수 있음.
  • 자세한 튜토리얼은 Sick.Codes 웹사이트에서 확인 가능.

기술적 세부사항

  • 다양한 macOS 버전 지원: High Sierra, Mojave, Catalina, Big Sur, Monterey, Ventura, Sonoma.
  • iPhone OSX KVM, 폴더 공유, USB 패스스루, SSH 및 VNC 지원.
  • X11 포워딩 및 QEMU + KVM 기반 실행.

요구사항

  • 최소 20GB 이상의 디스크 공간 필요.
  • BIOS 설정에서 가상화 활성화 필요.
  • x86_64 KVM 호스트 필요.

TODO

  • 보안 연구를 위한 문서화.
  • GPU 가속 지원.
  • virt-manager 지원.

Docker 이미지

  • Docker Hub에서 Docker-OSX 이미지를 다운로드할 수 있음.

Kubernetes 지원

  • Docker-OSX는 Kubernetes를 지원함.
  • Kubernetes Helm Chart 및 문서는 helm 디렉토리에서 확인 가능.

지원

  • 작은 질문이나 이슈는 GitHub 이슈를 통해 문의 가능.
  • 전문적인 지원 서비스도 제공함.

라이선스 및 기여

  • Docker-OSX는 GPL v3+ 라이선스를 따름.
  • 기여를 환영하며, 기여자 목록은 GitHub에서 확인 가능.

유사 프로젝트

  • Dock Droid: Docker 컨테이너에서 Android 실행.
  • Docker-eyeOS: Docker 컨테이너에서 iOS 12 실행.
  • Bluebubbles.app: Docker에서 iMessage 리레이어 실행.

면책 조항

  • Apple 보안 연구에 관심이 있다면 이 프로젝트가 유용할 것임.
  • Hackintosh, OSX-KVM, Docker-OSX의 법적 문제는 각자의 책임임.

GN⁺의 정리

  • Docker-OSX는 Docker 컨테이너에서 macOS를 실행할 수 있게 해주는 유용한 도구임.
  • 다양한 macOS 버전을 지원하며, 보안 연구 및 개발에 유용함.
  • 커뮤니티 지원이 활발하며, 다양한 설치 및 최적화 옵션을 제공함.
  • 비슷한 기능을 가진 프로젝트로는 Dock Droid와 Docker-eyeOS가 있음.
Hacker News 의견
  • GPU 가속을 위해서는 PCI 패스스루를 통해 지원되는 dGPU(AMD RX 6xxx 이상)를 사용해야 함

    • Intel iGPU는 Comet Lake와 일부 Ice Lake까지 작동하지만, 최신 버전은 작동하지 않음
    • Apple Silicon 빌드의 MacOS는 당분간 에뮬레이션이 불가능할 것으로 보임
    • Intel VT-x가 AMD에 없기 때문에 AMD 호스트에서 가상화가 불가능함
    • 오래된 VirtualBox 버전으로 Docker를 에뮬레이션을 통해 작동시키는 방법이 있음
  • 관련 프로젝트:

    • Docker-OSX: Docker에서 macOS VM 실행
    • macOS in QEMU in Docker: QEMU에서 macOS 실행
  • Sick Codes와의 인터뷰에서 이 제품에 대한 접근 방식을 논의함

    • OSX-PROXMOX: Proxmox 홈 서버에서 유사한 기능을 제공하는 프로젝트
    • HP Z420 Xeon에서 사용 중이며, GPU 패스스루와 함께 매우 안정적임
  • 홈 서버에서 iCloud 동기화를 실행하는 것이 멋질 것 같음

    • 현재 iCloud를 홈 서버/NAS에 물리적으로 백업할 좋은 방법이 없음
  • 이 프로젝트는 현재 x86-64 Docker 이미지만 제공하며, aarch64는 제공하지 않음

  • iOS 빌드를 시도해보고 싶음

    • Unity, React Native 등을 사용하여 빌드 가능성을 탐색하고 싶음
    • 빌드 시간이 5배 더 걸리더라도 자유로움 측면에서 멋질 것 같음
  • QEMU가 컨테이너에서 실행되고, 그 안에서 macOS가 실행됨

    • 설치가 매우 간편하며 수동 설정 단계가 없음
    • macOS EULA를 명백히 위반할 가능성이 있음
    • Apple 소프트웨어는 Apple 브랜드 컴퓨터에서만 실행할 수 있음
    • 프로젝트를 다운로드하여 보관할 것을 권장하며, 법적 경고를 받을 수 있음
  • MacOS 이미지를 재배포하는 것이 라이선스에 의해 허용되는지 궁금함

    • 이 프로젝트가 Docker Hub에서 불법 복사본을 배포하는지 의문임
  • Intel 지원이 없는 최신 MacOS 버전이 출시되면 진행이 중단될지 궁금함

    • 이 컨테이너 안에서 Docker를 실행하여 MacOS를 MacOS 안에서 실행할 수 있는지 궁금함
  • "USB 패스스루"라는 용어가 잘못 사용되는 것을 싫어함

    • 실제로는 "USB over ethernet proxy"가 사용됨
    • 이는 일반적인 패스스루가 가지지 않는 여러 단점을 초래함