2020-06-04 06:01:38 -05:00
|
|
|
# Docker-OSX
|
2020-06-04 13:31:47 -05:00
|
|
|
|
|
|
|
![Running mac osx in a docker container](/running-mac-inside-docker-qemu.png?raw=true "OSX KVM DOCKER")
|
|
|
|
|
|
|
|
Run Mac in a Docker container! Run near native OSX-KVM in Docker! X11 Forwarding!
|
|
|
|
|
|
|
|
Author: Sick.Codes https://sick.codes/
|
2020-06-04 13:38:52 -05:00
|
|
|
|
2020-06-04 13:31:47 -05:00
|
|
|
Credits: OSX-KVM project among many others: https://github.com/kholia/OSX-KVM/blob/master/CREDITS.md
|
|
|
|
|
|
|
|
```
|
2020-06-04 13:35:57 -05:00
|
|
|
git clone https://github.com/sickcodes/Docker-OSX.git
|
|
|
|
|
|
|
|
cd Docker-OSX
|
|
|
|
|
|
|
|
docker build -t docker-osx .
|
|
|
|
|
|
|
|
docker run --privileged -v /tmp/.X11-unix:/tmp/.X11-unix docker-osx
|
|
|
|
|
2020-06-04 16:10:05 -05:00
|
|
|
# press ctrl G if your mouse gets stuck
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
# Start the same container later (persistent disk)
|
|
|
|
```
|
|
|
|
# look at it
|
|
|
|
docker ps --all --filter "ancestor=docker-osx"
|
|
|
|
|
|
|
|
# boot my old one
|
|
|
|
docker start $(docker ps -q --all --filter "ancestor=docker-osx")
|
2020-06-04 13:31:47 -05:00
|
|
|
```
|
|
|
|
|
2020-06-04 15:25:29 -05:00
|
|
|
# Additional Boot Instructions
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
# Boot the macOS Base System
|
|
|
|
|
|
|
|
# Click Disk Utility
|
|
|
|
|
|
|
|
# Erase the biggest disk
|
|
|
|
|
|
|
|
# Partition that disk and subtract 1GB and press Apply
|
|
|
|
|
|
|
|
# Click Reinstall macOS
|
|
|
|
|
|
|
|
```
|
|
|
|
|
2020-06-04 16:42:21 -05:00
|
|
|
# Docker install
|
|
|
|
|
|
|
|
If you don't have Docker already
|
|
|
|
|
|
|
|
```
|
|
|
|
### Arch (pacman version isn't right at time of writing)
|
|
|
|
|
|
|
|
wget https://download.docker.com/linux/static/stable/x86_64/docker-19.03.5.tgz
|
|
|
|
tar -xzvf docker-*.tgz
|
|
|
|
sudo cp docker/* /usr/bin/
|
|
|
|
sudo dockerd &
|
|
|
|
sudo groupadd docker
|
|
|
|
sudo usermod -aG docker $USER
|
|
|
|
# run docker later
|
|
|
|
sudo nohup dockerd &
|
|
|
|
|
|
|
|
### Ubuntu
|
|
|
|
|
|
|
|
apt-get remove docker docker-engine docker.io containerd runc -y
|
|
|
|
apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common -y
|
|
|
|
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
|
|
|
|
apt-key fingerprint 0EBFCD88
|
|
|
|
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
|
|
|
|
apt-get update -y
|
|
|
|
apt-get install docker-ce docker-ce-cli containerd.io -y
|
|
|
|
|
|
|
|
```
|
|
|
|
|
2020-06-04 16:23:16 -05:00
|
|
|
# Backup the disk
|
|
|
|
|
|
|
|
your image will be stored in:
|
|
|
|
|
|
|
|
/var/lib/docker/overlay2/...../arch/OSX-KVM/home/arch/OSX-KVM/mac_hdd_ng.img
|
|
|
|
```
|
|
|
|
# find your container's root folder
|
|
|
|
|
|
|
|
docker inspect $(docker ps -q --all --filter "ancestor=docker-osx") | grep UpperDir
|
|
|
|
|
|
|
|
# In the folder from the above command, your image is inside ./home/arch/OSX-KVM/mac_hdd_ng.img
|
|
|
|
|
|
|
|
# then sudo cp it somewhere. Don't do it while the container is running tho, it bugs out.
|
|
|
|
|
|
|
|
```
|
|
|
|
|
2020-06-04 15:25:29 -05:00
|
|
|
|
2020-06-04 16:10:05 -05:00
|
|
|
# Wipe old images
|
|
|
|
|
|
|
|
```
|
2020-06-04 16:23:16 -05:00
|
|
|
|
2020-06-04 16:10:05 -05:00
|
|
|
# WARNING deletes all old images, but saves disk space if you make too many containers
|
2020-06-04 16:23:16 -05:00
|
|
|
|
2020-06-04 16:10:05 -05:00
|
|
|
docker system prune --all
|
|
|
|
docker image prune --all
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
2020-06-04 13:31:47 -05:00
|
|
|
# Instant OSX-KVM in a BOX!
|
|
|
|
This Dockerfile automates the installation of OSX-KVM inside a docker container.
|
|
|
|
|
|
|
|
It will build a 32GB Mojave Disk.
|
|
|
|
|
|
|
|
You can change the size and version using build arguments (see below).
|
|
|
|
|
|
|
|
This file builds on top of the work done by Dhiru Kholia and many others on the OSX-KVM project.
|
|
|
|
|
|
|
|
|
|
|
|
# Custom Build
|
|
|
|
```
|
|
|
|
|
|
|
|
docker build -t docker-osx:latest \
|
|
|
|
--build-arg VERSION=10.14.6 \
|
|
|
|
--build-arg SIZE=200G
|
|
|
|
|
2020-06-04 13:35:57 -05:00
|
|
|
docker run --privileged -v /tmp/.X11-unix:/tmp/.X11-unix docker-osx:latest
|
2020-06-04 13:31:47 -05:00
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
## Todo:
|
|
|
|
```
|
|
|
|
# persistent disk with least amount of pre-build errands.
|
|
|
|
```
|