DEV Community

Antony Nyagah
Antony Nyagah

Posted on • Originally published at nyagah.me

You Don't Need Docker Desktop on Linux

Docker Desktop was using 4GB of RAM on my machine. Sitting there. Doing nothing. No containers running. Just the daemon.

I don't know about you, but 4 gigs for a container runtime that isn't running any containers is a hard no from me.

I'm on Fedora, but this applies to Ubuntu, Debian, whatever. If you're running Linux, you don't need Docker Desktop.

So I started looking at what I actually needed. Turns out: not much.

What Docker Desktop actually is

Docker Desktop is a GUI wrapper around a VM that runs the Docker Engine. On Linux, the VM part is unnecessary. Docker runs natively on Linux. The VM exists because Windows and macOS don't have a native Linux kernel. But on Linux? You're running a VM to run something that already runs natively on your system. That's the bloat.

What you actually need on Linux:

  • Docker Engine — the daemon that runs containers (docker-ce)
  • Docker Compose — the plugin, not the old Python binary (docker compose, not docker-compose)
  • The CLI — docker commands, which come with the engine

That's it. No GUI. No VM. No 4GB idle footprint.

The auto-start nonsense

Here's what really pushed me over the edge. Every time I rebooted my Fedora machine, Docker Desktop wouldn't auto-start. I had to manually launch it. Every single time.

This is supposed to "just work." It's a desktop application. Starting on boot is table stakes. But nope — I'd boot up, try to run docker ps, get a "cannot connect to daemon" error, and have to go find Docker Desktop in my app launcher and start it manually. Like it's 2012 and I'm starting a service by hand.

Compare that to the Docker Engine installed natively:

sudo systemctl enable docker
sudo systemctl start docker
Enter fullscreen mode Exit fullscreen mode

Done. Starts on boot. Every time. No manual launching. No GUI to hunt down. It just works. Because it's a system service, not a desktop app cosplaying as one.

Podman is right there

While I was figuring all this out, I also realized Podman Desktop exists. And it does basically the same thing Docker Desktop does — a GUI for managing containers, images, volumes — but it uses Podman under the hood. Which is daemonless. Which means even less overhead.

Podman Desktop on my machine: about 800MB idle. Docker Desktop: 4GB. Same machine. Same workload (nothing). Five times the memory for the same thing.

Now, I still use Docker for most things. My docker-compose files, my CI pipelines, my multi-arch builds — they're all Docker. I'm not saying everyone should switch to Podman. I'm saying if you're on Linux and you're using Docker Desktop, you're paying a VM tax for no reason. The engine is already there.

What I actually run

Here's my setup. Pick your distro:

# Fedora / RHEL
sudo dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin

# Ubuntu / Debian
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

# Then for both:
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
Enter fullscreen mode Exit fullscreen mode

That's it. No Docker Desktop. No VM. No 4GB idle. No manual launching. docker commands work. docker compose works. Everything I need.

(If Docker's repos aren't set up yet: Fedora guide or Ubuntu guide. It's three commands.)

And if I want a GUI for browsing images or checking logs? Podman Desktop. It connects to Docker's socket just fine. Best of both worlds: Docker engine under the hood (because that's what my CI and my compose files expect), Podman Desktop when I want a visual overview, and neither one is eating my RAM for breakfast.

Do you actually need Docker Desktop?

If you're on Windows or macOS: probably yes. Docker Engine needs a Linux kernel, and Docker Desktop provides that VM. It's doing real work on those platforms.

If you're on Linux: probably no. The engine runs natively. You don't need a VM. You don't need a GUI (the CLI is better once you learn 10 commands). And if you occasionally want a GUI, Podman Desktop is lighter and free.

Docker Desktop on Linux is like installing a virtual machine to run Firefox. Firefox already runs on Linux. Just install Firefox.

The 10 commands you actually need

If the CLI is what's holding you back, here's what covers 90% of daily use. It's not that many:

docker ps                 # what's running?
docker ps -a              # what exists (including stopped)?
docker logs <container>   # what's it saying?
docker compose up -d      # start my stack
docker compose down       # stop my stack
docker compose pull       # update images
docker compose up -d --build  # rebuild and restart
docker exec -it <container> sh  # get a shell inside
docker system prune -a    # clean up everything unused
docker stats              # what's eating my RAM?
Enter fullscreen mode Exit fullscreen mode

Ten commands. You'll use maybe five of them regularly. The GUI is nice to have but not worth 4GB.

Just try it

Remove Docker Desktop. Install docker-ce and the compose plugin. Systemctl enable it. See if you miss the GUI. If you do, install Podman Desktop. You can always reinstall Docker Desktop — but I don't think you will.

I haven't opened Docker Desktop in over a year. My containers run fine. My RAM is happier. My machine boots and Docker is just... there. Working. Like it should.

Top comments (0)