Install Docker on Mac M1 without Docker Desktop

Cover Image for Install Docker on Mac M1 without Docker Desktop
Sergej Brazdeikis
Sergej Brazdeikis

Docker Desktop is the default way to get docker on your machine, and when you search, it suggests installing it. To find the documentation to do it differently - is a hassle.

It remains free for small businesses (fewer than 250 employees AND less than $10 million in annual revenue), personal use, education, and non-commercial open-source projects.

Here I'm sharing the simplest way to go around it.

Docker on Mac with no Docker Desktop

brew install docker docker-compose

Docker Compose on Mac without Docker Desktop

After installing the Docker, you will see the message.

Compose is now a Docker plugin. For Docker to find this plugin, symlink it:
  mkdir -p ~/.docker/cli-plugins
  ln -sfn /opt/homebrew/opt/docker-compose/bin/docker-compose ~/.docker/cli-plugins/docker-compose

Just execute the above, and we did not finish yet!

Enjoy!

Free Replacement Docker Desktop

Docker Desktop installs Docker Engine, which can run only on Linux. So far, we have installed only CLI tools. For images to run, we need an environment.

Rancher Desktop replaces Docker Desktop! Happily to Rancher Desktop v1.0.0 was just released with M1 chip compatibility and solved this problem for us!

If you are on the Mac with an M1 chip, download the file with ...mac.aarch64.zip from releases page on GitHub

Rancher Desktop Dashboard

Rancher Desktop No access error

In case you are a missing directory or existing directory permissions will not compatible, run these:

sudo mkdir /usr/local/bin
sudo chown $USER /usr/local/bin

source: https://github.com/rancher-sandbox/rancher-desktop/issues/1155#issuecomment-1003274324

Other Docker Desktop alternatives

Here I hopefully saving you some time from overanalysing the other alternatives:

  • Docker + Hyperkit + Minikube: does not work on M1 Macs
  • Podman - lacks of ability to mount volumes from the host OS
  • Lima + nerdctl - It is not really a docker

Thanks for reading!

Sergej Brazdeikis
Sergej Brazdeikis