This document will guide you from your current installation of Docker Desktop for Mac to a setup which is not burdened by license fees.
TODO
Warning: prior to removing Docker Desktop for Mac, please make sure you back up all the important data you might be storing in your containers/volumes.
- Click the Docker icon in the macOS menu bar
- Select the Settings option
- Click the button with a bug icon in the top right
- Click the Uninstall button and confirm the removal
- This will make sure that all files that were created by Docker Desktop (such as Docker images, Docker containers, and the Linux VM in which Docker Desktop operates itself) are properly removed
- This process might take 5-15 minutes, because Docker for Mac never cared about your time as a developer
- If you installed Docker Desktop for Mac using Homebrew (specifically Homebrew Cask), also remove the last remaining artifacts of Docker Desktop by running either
brew uninstall --cask docker
orbrew uninstall --cask docker-edge
- In shell, run
brew install multipass
- You will be prompted for your password during the installation, so enter it when prompted
- Optional: if you want to (or have to, due to crazy network configuration, as is the case for me) use VirtualBox as the hypervisor (instead of
Hypervisor.framework
), install VirtualBox now using the following command:brew install virtualbox
- You will likely be prompted to enable new kernel extension. You can do so by going to System Preferences ⤳ Security and Privacy ⤳ Allow, and restarting your Mac
- An indication that you cannot use
Hypervisor.framework
would be a sudden loss of Internet connection on your Mac while running theinit-instance.sh
command in the next step. If that happens to you, don’t panic, and restart your Mac. That should restore your network functionality. Run themultipass delete --purge --all
command to start again from a clean state, and resume this tutorial from the third step, by using VirtualBox this time
- Provision a virtual machine using Multipass:
- If using the default
Hypervisor.framework
, run./init-instance.sh docker
- If using VirtualBox, run
./init-instance.sh docker --virtualbox
- If using the default