Andrew Mercer
on this page
  • https://docs.docker.com/desktop/setup/install/linux/fedora/
  • https://docs.docker.com/desktop/setup/install/linux/

Docker Desktop vs Docker Engine on Linux

On Linux, plain Docker Engine (docker-ce) runs containers natively on the host. Docker Desktop instead runs Engine inside a small VM (via KVM) and adds a GUI, a built-in single-node Kubernetes, extensions, and the same experience as on macOS and Windows.

The trade-offs:

  • The VM uses its own fixed memory and CPU allocation, set under Settings → Resources.
  • Containers, images, and volumes in Desktop are separate from any host Engine install.
  • Docker Desktop is free for personal use, education, and small businesses. Larger companies need a paid subscription.

For a headless server or CI runner, use Docker Engine, not Desktop.

Requirements

  • 64-bit CPU with virtualization enabled, and KVM available: ls -l /dev/kvm sudo usermod -aG kvm $USER # then log out and back in
  • A supported Fedora release (check the install page). On desktops other than GNOME, also install gnome-terminal, which Docker Desktop uses for its terminal integration.

Install on Fedora

  1. Add Docker's package repository. Desktop pulls the CLI and plugins from it: sudo dnf -y install dnf-plugins-core sudo dnf config-manager addrepo --from-repofile=https://download.docker.com/linux/fedora/docker-ce.repo On releases still using dnf4, the command is sudo dnf config-manager --add-repo <url>.
  2. Download the latest RPM from the install page linked above and install it: sudo dnf install ./docker-desktop-x86_64.rpm
  3. Start it from the app menu, or: systemctl --user start docker-desktop systemctl --user enable docker-desktop # start at login

Contexts: Desktop vs host Engine

If both are installed, the docker CLI talks to whichever context is active:

docker context ls
docker context use desktop-linux     # Docker Desktop's VM
docker context use default           # host Docker Engine (/var/run/docker.sock)

Docker Desktop switches to desktop-linux when it starts. If images or containers seem to have disappeared, check which context is active.

Built-in Kubernetes

Settings → Kubernetes → Enable Kubernetes starts a single-node cluster inside the VM and adds a docker-desktop context to ~/.kube/config:

kubectl config use-context docker-desktop
kubectl get nodes

It's useful for local testing. For anything resembling a real cluster, see the Kubernetes section's cluster guides.