Docker Desktop turned into everything wrong with software
Docker Desktop used to be a simple GUI for running containers on your laptop. Now it's a RAM-eating monster that costs $9/month and crashes every time your laptop goes to sleep.
I've been dealing with this bullshit for three years now. Here's what actually happens when you try to use Docker Desktop for real work:
Docker decided to start charging because fuck you, that's why
Docker changed their pricing in 2021 and again in 2024 because they realized they had everyone hooked. What used to be free now costs money if your company has more than 250 people or makes over $10M:
- Personal: Still free (for now, until they change their mind again)
- Pro: $9/month (was $5, they doubled it because they could)
- Team: $15/month per person
- Business: $24/month per person
For a 20-person dev team, you're looking at thousands per year just so people can run containers on their laptops. It's stupid.
Companies started getting those delightful "pay up or we'll audit you" emails. Nothing like legal threats to make you reconsider your tooling choices.
Docker Desktop pricing has gone from free to expensive fast:
- 2021: Free for everyone
- Late 2021: Paid for companies >250 employees
- 2024: Price doubled to $9/month for Pro tier
The performance problems that will ruin your day
But wait, there's more! Docker Desktop doesn't just cost money - it actively makes your laptop worse:
RAM consumption: Docker Desktop eats 3-4GB of RAM just sitting there doing nothing. Start actually using it and watch it balloon to 6-8GB while your laptop fan sounds like a jet engine. The com.docker.backend
process is a memory leak waiting to happen.
File sharing is garbage on macOS: npm install takes maybe 30-45 seconds normally? In Docker Desktop it's like 2-3 minutes, sometimes longer if you're really unlucky. Perfect excuse for another coffee break.
Container startup is slow as hell: Takes forever to start containers compared to alternatives. When you're restarting containers 20 times a day, those extra seconds add up to actual minutes of your life you'll never get back.
It crashes constantly: Docker Desktop loves to crash when your laptop goes to sleep, when you switch wifi networks, when you look at it wrong. "Have you tried restarting Docker Desktop?" became the new "have you tried rebooting?"
OK, enough bitching. Why I finally said fuck it and migrated
The monthly fee pisses you off, but the real cost is your sanity. How much time do you waste restarting Docker Desktop? Waiting for slow builds? Explaining to your team why the build works on your machine but not theirs?
I tried to stick with it for two goddamn years. "Maybe 4.8.0 will fix the memory leaks." Then 4.9.0. Then 4.10.0. Spoiler alert: they all sucked.
OrbStack, Podman Desktop, and Rancher Desktop all work better than Docker Desktop now. Took me four different migrations to figure out which ones actually work in production vs which ones just look good in demos.
The three alternatives that actually work:
- OrbStack: Fast macOS-only alternative ($8/month but worth it)
Podman Desktop: Free, rootless, Red Hat-backed
Rancher Desktop: Free with built-in Kubernetes by SUSE
Prerequisites: Don't fuck this up
Actually backup your shit first
Look, I know you're excited to get off Docker Desktop, but please don't be the person who loses three months of work because you didn't backup properly. I've seen it happen. Don't be that person.
List what you actually have:
## See what containers you forgot were running
docker ps -a --format \"table {{.Names}} {{.Image}} {{.Status}} {{.Ports}}\"
Backup images you actually care about:
## See all your images first
docker images --format \"table {{.Repository}} {{.Tag}} {{.Size}}\"
## Save the ones that would be a pain to rebuild
docker save -o my-important-app.tar my-important-app:latest
Volume backup (the part everyone forgets):
## List your volumes - there are probably more than you think
docker volume ls
## Actually backup the important ones
docker run --rm -v volume_name:/data -v $(pwd):/backup alpine tar czf /backup/volume_backup.tar.gz /data
Compose files: Make sure your docker-compose.yml files are in git. Run docker-compose config
to check for syntax errors before you break everything.
System requirements (and the gotchas they don't mention)
macOS:
- macOS Big Sur or newer (if you're still on Mojave, what are you even doing?)
- 16GB RAM if you don't want your laptop to melt (8GB works but you'll suffer)
- Xcode Command Line Tools:
xcode-select --install
(yes, even if you hate Xcode)
Windows:
- Windows 10 build 2004+ (older versions will make you sad)
- WSL 2 properly set up:
wsl --update
(if this breaks, good luck) - Virtualization enabled in BIOS (ask your IT department nicely)
- WSL installed:
wsl --install
(and pray it works the first time)
Linux:
- Any distro from this decade (Ubuntu 20.04+, Fedora 35+)
- systemd (most things need this now)
- Your user in the docker group:
sudo usermod -aG docker $USER
(then log out/in)
Container vs VM Architecture:
- Containers: Share the host OS kernel, lightweight, fast startup
- Virtual Machines: Each runs full OS, heavier resources, slower startup
- Docker alternatives: Use same container model, just different engines
Check what will break when you switch
Your IDE probably has Docker stuff configured: VS Code Docker extension, JetBrains Docker settings, dev container configs. Write down what you have so you can fix it later.
CI/CD will probably have issues: Most alternatives work fine with standard Docker commands, but if you're doing weird Docker Desktop-specific stuff, expect some tweaking.
Team coordination: Don't be the person who breaks the team setup. If everyone else is on Docker Desktop, maybe coordinate the migration. "Works on my machine" problems are even more fun when everyone's running different container engines.
Alright, enough bitching about Docker Desktop. Here's what actually works.