

If you're on an Intel Mac, you have many options from VirtualBox and more, but on ARM M1 Macs, the best free solution available at the time is UTM.

Originally, I was simply using the Docker CLI that came with the pre 4.0 free Docker Desktop, but in November 2022 that is now a really old and outdated CLI, so to install the Docker CLI without Docker Desktop, use brew: $ brew install docker docker-composeĪfterwards, I needed some kind of VM to run Linux in. I documented the instructions for doing this on a Mac M1 here in my article titled Setting Up Docker on macOS M1 Arm64 to Use Debian 10.4 Docker Engine. When Docker announced that Docker Desktop would no longer be free, I did some research on alternatives and figured out how to run Docker Engine in a Debian VM while using the Docker CLI on the macOS host. To run your own virtual machine you can look into using a hypervisor like Virtualbox to run your own linux virtual machine on your mac. For example docker bind mounts are a core concept in docker, however to get them to work on your Mac, docker desktop must also take responsibility to bridge the gap between MacOS and the Linux virtual machine. But be aware that you may be using some features of docker desktop that you didn't realise were "features". That may be the case, I don't know your needs. I don't need any of the features that are exclusive to Docker Desktop®


Since these two features are the core of container technology you're highly unlikely to find other non-docker solutions (including Podman) will work either. This is because Docker is a wrapper for namespaces and cgroups which are both Linux concepts with no implementation in the MacOS kernel. Is there a way to install the linux version of docker in macOS? This explains why docker desktop has the concept of allocated resources including a "disk image size" which have nothing to do with docker engine itself. I have docker desktop running on my Macbook and to the best of my knowledge this is achieved by docker desktop creating a Linux virtual machine and running the Docker engine in that. As far as I'm aware docker is functionally incompatible with MacOS.
