Running Docker without Docker Desktop
Docker is great. Docker Desktop sucks. Here’s my fix.
TL;DR
brew install qemu docker colima
(colima replaces the docker/dockerd binary, qemu helps you unable to resize disk for v big images)- Install the right
docker-compose
binary for your chipset from the releases pagesudo curl -L https://github.com/docker/compose/releases/download/v2.5.1/docker-compose-darwin-aarch64 -o /usr/local/bin/docker-compose
for M1 Macschmod +x /usr/local/bin/docker-compose
to let it execute
Now you can start the docker daemon with colima start
. You’ll need to do this the first time you run the docker
binary in every session.
You can also run docker-compose up
as per normal but without needing Docker Desktop.
Context
Although I am known for loving Docker (the containerization technology), I am also known for being a critic of Docker Desktop (the desktop UI client for Docker) for its poor performance:
The constant upgrade nags until you pay them also don’t inspire any love whatsoever.
Docker Desktop is Docker (the company)‘s first wedge into getting you to run proprietary software, so Docker strongly guides you to download it as the only way to get started:
In fact, new users can go pretty far without even realizing that you don’t need Docker Desktop to run the Docker daemon. I’ve asked multiple people how to do it and nobody had a good answer, or at least, nobody had an answer that worked on M1 Macs, until now.
For my 2022 New Mac Setup guide I resolved to figure it out once and for all, and what you see here is what I ended up with!
OK I’m ready to try it!
You already missed the instructions. scroll up to TL;DR :)
Troubleshooting 1
A user reported this issue with colima:
FATA[0000] error starting vm: error at ‘starting’: exit status 1
try reinstalling:
brew unlink colima # If it is already installed, uninstall it first
brew install --HEAD colima
colima start --runtime docker
docker ps # success
Troubleshooting 2
In the comments, @sreetamdas reported Cannot connect to the Docker daemon at unix:///var/run/docker.sock.
errors.
# In order to use the `docker` runtime:
brew install docker
# Start colima
colima start --runtime docker
# https://github.com/abiosoft/colima/blob/main/docs/FAQ.md#cannot-connect-to-the-docker-daemon-at-unixvarrundockersock-is-the-docker-daemon-running
export DOCKER_HOST="unix://${HOME}/.colima/default/docker.sock"
Nov 2022 Edit: Podman
you could also try Podman: https://podman-desktop.io/ https://news.ycombinator.com/item?id=33536978#33539372