aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsickcodes <[email protected]>2020-09-20 08:49:12 +0000
committersickcodes <[email protected]>2020-09-20 08:49:12 +0000
commitce3b320d03ac47263c470f81c4586ab560cb4398 (patch)
tree2c8d34a4792547da3a6af31537a5835573e20af1
parentVNC: updated for tigervnc 1.11.0 https://github.com/TigerVNC/tigervnc/releases (diff)
downloaddocker-osx-ce3b320d03ac47263c470f81c4586ab560cb4398.tar.xz
docker-osx-ce3b320d03ac47263c470f81c4586ab560cb4398.zip
README update for current feature set
-rw-r--r--README.md135
1 files changed, 81 insertions, 54 deletions
diff --git a/README.md b/README.md
index 54079dd..f3bfe76 100644
--- a/README.md
+++ b/README.md
@@ -1,18 +1,34 @@
# Docker-OSX
-#### [Follow @sickcodes on Twitter](https://twitter.com/sickcodes) for v2.0 notification (SSH TUNNELING, XFVB HEADLESS, NFS, FULL AUTO CI/CD)
+## [Follow @sickcodes on Twitter](https://twitter.com/sickcodes)
+
+### V2.5
+# Features In Docker-OSX v2.5
+- CI/CD weaponization thru vnc and xdotool
+- OSX-KVM
+- X11 Forwarding
+- SSH on localhost:50922
+- QEMU
+- VNC on localhost:8888 [vnc version is inside a separate directory](https://github.com/sickcodes/Docker-OSX/blob/master/vnc-version/Dockerfile)
+- Create an ARMY using `docker commit`
+- XFVB HEADLESS (use vnc)
+
![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/ & https://twitter.com/sickcodes
-Credits: OSX-KVM project among many others: https://github.com/kholia/OSX-KVM/blob/master/CREDITS.md
+Based: https://github.com/kholia/OSX-KVM && the great guy [@kholia](https://twitter.com/kholia)
+
+Credits: https://github.com/sickcodes/Docker-OSX/blob/master/CREDITS.md
+
+Upstream Credits: OSX-KVM project among many others: https://github.com/kholia/OSX-KVM/blob/master/CREDITS.md
Docker Hub: https://hub.docker.com/r/sickcodes/docker-osx
Pull requests, suggestions very welcome!
-```
+```bash
docker pull sickcodes/docker-osx
@@ -35,9 +51,9 @@ ssh fullname@localhost -p 50922
Need to turn on hardware virtualization in your BIOS, very easy to do.
Then have QEMU on the host if you haven't already:
-```
+```bash
# ARCH
-sudo pacman -S qemu libvirt dnsmasq virt-manager bridge-utils flex bison ebtables edk2-ovmf
+sudo pacman -S qemu libvirt dnsmasq virt-manager bridge-utils flex bison iptables-nft edk2-ovmf
# UBUNTU DEBIAN
sudo apt install qemu qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virt-manager
@@ -60,7 +76,7 @@ This is for when you want to run your system later.
If you don't run this you will have a new image every time.
-```
+```bash
# look at your recent containers and copy the CONTAINER ID
docker ps --all
@@ -74,34 +90,32 @@ docker start abc123xyz567
# Additional Boot Instructions
-```
+- Boot the macOS Base System
-# Boot the macOS Base System
+- Click Disk Utility
-# Click Disk Utility
+- Erase the BIGGEST disk (around 200gb default), DO NOT MODIFY THE SMALLER DISKS.
-# Erase the biggest disk (around 200gb default), DO NOT MODIFY THE SMALLER DISKS.
+- Click Reinstall macOS
-# Click Reinstall macOS
-```
## Creating images:
-```
+```bash
# You can create an image of a already configured and setup container. This allows you to effectively duplicate a system.
# To do this, run the following commands
-$ docker ps --all #make note of your container id
-$ docker commit containerID newImageName
+docker ps --all #make note of your container id
+docker commit containerID newImageName
# To run this image do the following
-$ docker run --privileged -e "DISPLAY=${DISPLAY:-:0.0}" -v /tmp/.X11-unix:/tmp/.X11-unix newImageName
+docker run --privileged -e "DISPLAY=${DISPLAY:-:0.0}" -v /tmp/.X11-unix:/tmp/.X11-unix newImageName
```
# Troubleshooting
libgtk permissions denied error, thanks @raoulh + @arsham
-```
+```bash
echo $DISPLAY
# ARCH
@@ -121,98 +135,109 @@ docker run --privileged -e "DISPLAY=${DISPLAY:-:0.0}" -v /tmp/.X11-unix:/tmp/.X1
Alternative run, thanks @roryrjb
-```docker run --privileged --net host --cap-add=ALL -v /tmp/.X11-unix:/tmp/.X11-unix -v /dev:/dev -v /lib/modules:/lib/modules sickcodes/docker-osx```
+```bash
+docker run --privileged --net host --cap-add=ALL -v /tmp/.X11-unix:/tmp/.X11-unix -v /dev:/dev -v /lib/modules:/lib/modules sickcodes/docker-osx
+```
Check if your hardware virt is on
-```egrep -c '(svm|vmx)' /proc/cpuinfo```
+```bash
+egrep -c '(svm|vmx)' /proc/cpuinfo
+```
Try adding yourself to the docker group
-```sudo usermod -aG docker $USER```
+```bash
+sudo usermod -aG docker "${USER}"
+```
Turn on docker daemon
-```sudo nohup dockerd &```
+```bash
+sudo dockerd
+# or daemonize it
+sudo nohup dockerd &
+```
Check /dev/kvm permissions
-```sudo chmod 666 /dev/kvm```
-
+```bash
+sudo chmod 666 /dev/kvm
+```
If you don't have Docker already
-```
+```bash
### 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
+tar -xzvf docker-19.03.5.tgz
sudo cp docker/* /usr/bin/
-sudo dockerd &
sudo groupadd docker
-sudo usermod -aG docker $USER
-# run docker later
-sudo nohup dockerd &
+sudo usermod -aG docker "${USER}"
### 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 -
+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
-sudo dockerd &
sudo groupadd docker
-sudo usermod -aG docker $USER
-sudo nohup dockerd &
+sudo usermod -aG docker "${USER}"
+
```
If you have no internet connectivity from the VM, you are using bridge
networking, and you are running Fedora:
-```
+```bash
# Set the docker0 bridge to the trusted zone
sudo firewall-cmd --permanent --zone=trusted --add-interface=docker0
sudo firewall-cmd --reload
```
-# Backup the disk
+# Backup the disk (Where's my disk?)
-your image will be stored in:
+You can use `docker cp`
-/var/lib/docker/overlay2/...../arch/OSX-KVM/home/arch/OSX-KVM/mac_hdd_ng.img
+```bash
+# docker copy your image OUT of your container (warning, double disk space)
+docker cp oldcontainerid:/home/arch/OSX-KVM/mac_hdd_ng.img .
```
+
+Or if you lost your container, find it with this:
+
+```bash
# fast way
sudo find /var/lib/docker -size +10G | grep mac_hdd_ng.img
-# note the container id
-docker ps
-
-# find your container's root folder
-docker inspect $(docker ps -q --all --filter "ancestor=docker-osx") | grep UpperDir
+# you can move (mv) it somewhere
+sudo mv somedir/mac_hdd_ng.img .
-# In the folder from the above command, your image is inside ./home/arch/OSX-KVM/mac_hdd_ng.img
+# start a new container
+# get the new container id
+docker ps
-# then sudo cut it somewhere. Don't do it while the container is running as you might lose data.
+# docker cp INTO new container
+docker cp ./mac_hdd_ng.img newcontainerid:/home/arch/OSX-KVM/mac_hdd_ng.img
```
-# Wipe old images
-
-```
+# DESTROY: Wipe old images
+```bash
# WARNING deletes all old images, but saves disk space if you make too many containers
-
+# The following command will make your containers RIP
docker system prune --all
docker image prune --all
-
```
-# Instant OSX-KVM in a BOX!
+# INSTANT OSX-KVM in a BOX!
This Dockerfile automates the installation of OSX-KVM inside a docker container.
It will build a Catalina Disk with up to 200GB of space.
@@ -223,12 +248,13 @@ This file builds on top of the work done by Dhiru Kholia and many others on the
# Custom Build
-```
-
+```bash
docker build -t docker-osx:latest \
--build-arg VERSION=10.14.6 \
--build-arg SIZE=200G
+```
+```bash
docker run \
-e RAM=4 \
-e SMP=4 \
@@ -237,10 +263,11 @@ docker run \
-e INTERNAL_SSH_PORT=23 \
--privileged -v /tmp/.X11-unix:/tmp/.X11-unix docker-osx:latest
-
```
## Todo:
```
-# persistent disk with least amount of pre-build errands.
+- GPU Acceleration (Hackintosh? Passthru bus id of cards? AMD Vega? Nvidia-SMI?)
+- Virt-manager
+
```