|3.2|2021-02-25|Add a script to generate unique machine serial numbers. Add a script to generate a bootdisk from given serial numbers. Add Linux for libguestfs which allows the docker container to make QEMU bootdisks with specific serial numbers.|
| |2021-02-21|Add NOPICKER environment variable to ALL images.|
| |2021-02-21|Add NOPICKER environment variable to ALL images.|
|3.1|2021-02-21|Remove testing repos. Switch to base-devel. We shouldn't be using testing repos in a Dockerfile for light increase in stability. Add the mandatory glibc patch to every pacman until someone upstream fixes it.|
|3.1|2021-02-21|Remove testing repos. Switch to base-devel. We shouldn't be using testing repos in a Dockerfile for light increase in stability. Add the mandatory glibc patch to every pacman until someone upstream fixes it.|
| |2021-02-07|Add NOPICKER environment variable to :naked image for effortless boot toggling.|
| |2021-02-07|Add NOPICKER environment variable to :naked image for effortless boot toggling.|
#### Follow [@sickcodes on Twitter](https://twitter.com/sickcodes) for updates or feature requests!
#### Follow [@sickcodes on Twitter](https://twitter.com/sickcodes) for updates or feature requests!
# Quick Start Docker-OSX
# Basic Quick Start Docker-OSX
```bash
```bash
@ -52,18 +58,28 @@ docker run -it \
```
```
# Quick Start 17.5GB Pre-Made Image
# Quick Start Large Pre-Made Image
Current large image size: 17.5GB
This starts the special auto image @sickcodes prepared earlier.
You will need around 50GB of space: half for the base image + half for your runtime image.
This image has already been installed with the following settings:
If you run out of space, you can nuke your Docker images/history/cache by simply deleting `/var/lib/docker`
- SSH enabled
- username is user
- password is alpine
- Autoupdates off
You will need around 50GB of space to run this image: half for the base image + half for your runtime image.
If you run out of space, you can delete all your Docker images/history/cache by simply deleting `/var/lib/docker`
```bash
```bash
docker pull sickcodes/docker-osx:auto
docker pull sickcodes/docker-osx:auto
# boot straight to OSX shell with no display (19GB)
# boot directly into a real OSX shell with no display (Xvfb)
docker run -it \
docker run -it \
--device /dev/kvm \
--device /dev/kvm \
-p 50922:10022 \
-p 50922:10022 \
@ -76,7 +92,7 @@ docker run -it \
docker pull sickcodes/docker-osx:auto
docker pull sickcodes/docker-osx:auto
# boot to OSX shell + display (19GB)
# boot directly into a real OSX shell with a visual display
docker run -it \
docker run -it \
--device /dev/kvm \
--device /dev/kvm \
-p 50922:10022 \
-p 50922:10022 \
@ -90,7 +106,7 @@ docker run -it \
docker pull sickcodes/docker-osx:auto
docker pull sickcodes/docker-osx:auto
# boot to OSX shell + display (19GB) + commands to run inside OSX
# boot to OSX shell + display + specify commands to run inside OSX!
docker run -it \
docker run -it \
--device /dev/kvm \
--device /dev/kvm \
-p 50922:10022 \
-p 50922:10022 \
@ -104,6 +120,8 @@ docker run -it \
```
```
### Restart an auto container
### Restart an auto container
Containers that use `sickcodes/docker-osx:auto` can be stopped at started.
```bash
```bash
# find last container
# find last container
docker ps -a
docker ps -a
@ -113,13 +131,14 @@ docker start -i containerid
```
```
# Quick Start Own Image
# Quick Start Own Image (naked container image)
This is my favourite container. You can supply an existing disk image as a docker command line argument.
Supply your own local image with `-v "${PWD}/mac_hdd_ng.img:/image"` and use `sickcodes/docker-osx:naked`
Supply your own local image with `-v "${PWD}/mac_hdd_ng.img:/image"` and use `sickcodes/docker-osx:naked`
- Naked image is for booting any existing .img file.
- Naked image is for booting any existing .img file.
- By default, this image has a variable called `NOPICKER` which is `"true"`. Use `-e NOPICKER=false` or any other string than the word `true` to enter the boot menu. This lets you use other disks instead of skipping the boot menu, e.g. recovery disk.
- By default, this image has a variable called `NOPICKER` which is `"true"`. This skips the disk selection menu. Use `-e NOPICKER=false` or any other string than the word `true` to enter the boot menu. This lets you use other disks instead of skipping the boot menu, e.g. recovery disk or disk utility.
```bash
```bash
docker pull sickcodes/docker-osx:naked
docker pull sickcodes/docker-osx:naked
@ -153,24 +172,25 @@ docker run -it \
sickcodes/docker-osx:naked
sickcodes/docker-osx:naked
```
```
# Features In Docker-OSX v3.1
# Features In Docker-OSX v3.2
- Full auto mode: boot straight to OSX shell.
- Serial number generators. [See below or ./custom](https://github.com/sickcodes/Docker-OSX/tree/master/custom)
- sickcodes/docker-osx:latest - original base recovery image (safe)
- Full auto mode: boot straight to OSX shell and even run commands as runtime arguments!
- sickcodes/docker-osx:naked - supply your own .img file (safe)
- `sickcodes/docker-osx:latest` - original base recovery image (safe)
- [OSX-KVM](https://github.com/kholia/OSX-KVM) inside a Docker container!
- X11 Forwarding
- X11 Forwarding
- SSH on localhost:50922
- SSH on `localhost:50922`
- QEMU
- QEMU + KVM!
- VNC on localhost:8888 [vnc version is inside a separate directory](https://github.com/sickcodes/Docker-OSX/blob/master/vnc-version/Dockerfile)
- VNC version on `localhost:8888` [vnc version is inside a separate directory, there are security risks involved with using VNC, see insid the Dockerfile](https://github.com/sickcodes/Docker-OSX/blob/master/vnc-version/Dockerfile)
- Create an ARMY using `docker commit`
- Create an ARMY of the same exact container using `docker commit`
- XFVB HEADLESS (use vnc)
- Xfvb headless mode
### All Pull Requests Welcome!
### All Pull Requests Welcome!
Docker-OSX is a GPLv3+ Dockerfile and we need contributors just like you :).
Docker-OSX is a GPLv3+ Dockerfile and we need contributors just like you :)
Upstream: https://github.com/kholia/OSX-KVM && the great guy [@kholia](https://twitter.com/kholia)
Upstream: https://github.com/kholia/OSX-KVM && the great guy [@kholia](https://twitter.com/kholia)
@ -178,6 +198,10 @@ Upstream Credits (OSX-KVM project) among many others: https://github.com/kholia/
# Download The Image for sickcodes/docker-osx:naked
# Download The Image for sickcodes/docker-osx:naked
This is the current automated image. Username is `user`, passsword is `alpine`, SSH is on, and auto-updates are off.
If the download is slow, just get the image from `docker pull sickcodes/docker-osx:auto` and find it in `/var/lib/docker`.
### Slow internet but iMessage & iCloud compatability
`-e NETWORKING=e1000-82545em`
### FAST internet but not compatable with iMessage & iCloud
`-e NETWORKING=vmxnet3`
### Other cool Docker-QEMU based projects:
### 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)
[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)
# Autoboot into OSX after you've installed everything
# Autoboot into OSX after you've installed everything
You can use `-e NOPICKER=true` or for older machines:
```bash
```bash
# find you containerID
# find you containerID
docker ps
docker ps
@ -289,7 +307,9 @@ sudo modprobe kvm
# Start the same container later (persistent disk)
# Start the same container later (persistent disk)
This is for when you want to run the SAME container again later.
1. You can now pull the `.img` file out of the container, which is stored in `/var/lib/docker`, and supply it as a runtime argument to the `:naked` Docker image. See above.
2. This is for when you want to run the SAME container again later.
If you don't run this you will have a new image every time.
If you don't run this you will have a new image every time.
[Use the sickcodes/docker-osx:naked image.](https://github.com/sickcodes/Docker-OSX/tree/custom-identity#quick-start-own-image)
[Use the sickcodes/docker-osx:naked image.](https://github.com/sickcodes/Docker-OSX/tree/custom-identity#quick-start-own-image)
# Internet Speeds
### Slow internet but iMessage & iCloud compatability
`-e NETWORKING=e1000-82545em`
### FAST internet but not compatable with iMessage & iCloud
`-e NETWORKING=vmxnet3`
# DESTROY: Wipe old images to free disk space
# DESTROY: Wipe old images to free disk space
The easiest way to clean out your entire Docker (ALL images, layers, and containers) is to `sudo rm -rf /var/lib/docker`
The easiest way to clean out your entire Docker (ALL images, layers, and containers) is to `sudo rm -rf /var/lib/docker`
@ -713,7 +742,7 @@ The directory that we are letting the Docker container use is a X server display
If we let the Docker container use the same display socket as our own environment, then any applications you run inside the Docker container will show up on your screen too! [https://www.x.org/archive/X11R6.8.0/doc/RELNOTES5.html](https://www.x.org/archive/X11R6.8.0/doc/RELNOTES5.html)
If we let the Docker container use the same display socket as our own environment, then any applications you run inside the Docker container will show up on your screen too! [https://www.x.org/archive/X11R6.8.0/doc/RELNOTES5.html](https://www.x.org/archive/X11R6.8.0/doc/RELNOTES5.html)