# Docker-OSX ## [Follow @sickcodes on Twitter](https://twitter.com/sickcodes) ### V2.6 # Features In Docker-OSX v2.6 - 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 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 ### Other cool Docker-QEMU based projects: [Run iOS in a Docker with Docker-eyeOS](https://github.com/sickcodes/Docker-eyeOS) - [https://github.com/sickcodes/Docker-eyeOS](https://github.com/sickcodes/Docker-eyeOS) Pull requests, suggestions very welcome! ```bash docker pull sickcodes/docker-osx:latest docker run --device /dev/kvm \ --device /dev/snd \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -e "DISPLAY=${DISPLAY:-:0.0}" \ sickcodes/docker-osx:latest # press ctrl G if your mouse gets stuck # scroll down to troubleshooting if you have problems # need more RAM and SSH on localhost -p 50922? docker run --device /dev/kvm \ -e "DISPLAY=${DISPLAY:-:0.0}" \ --device /dev/snd \ -e RAM=4 \ -p 50922:10022 \ -v /tmp/.X11-unix:/tmp/.X11-unix \ sickcodes/docker-osx:latest ssh fullname@localhost -p 50922 ``` # Requirements: KVM on the host 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 iptables-nft edk2-ovmf # UBUNTU DEBIAN sudo apt install qemu qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virt-manager # CENTOS RHEL FEDORA sudo yum install libvirt qemu-kvm -y # then run sudo systemctl enable libvirtd.service sudo systemctl enable virtlogd.service sudo modprobe kvm # reboot ``` # How to Enable Network Forwarding Allow ipv4 forwarding for bridged networking connections: This is not required for LOCAL installations and may cause containers behind [VPN's to leak host IP](https://sick.codes/cve-2020-15590/). If you are connecting to a REMOTE Docker-OSX, e.g. a "Mac Mini" in a datacenter, then this may boost networking: ```bash # enable for current session sudo sysctl -w net.ipv4.ip_forward=1 # OR # sudo tee /proc/sys/net/ipv4/ip_forward <<< 1 # enable permanently sudo touch /etc/sysctl.conf sudo tee -a /etc/sysctl.conf <