- 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¶
- 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.repoOn releases still using dnf4, the command issudo dnf config-manager --add-repo <url>. - Download the latest RPM from the install page linked above and install it:
sudo dnf install ./docker-desktop-x86_64.rpm - 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.