usedocker

// install · linux

Install Docker Desktop on Linux

Install Docker Desktop on Ubuntu, Debian, Fedora, RHEL, or Arch in about fifteen minutes. The package and exact commands depend on your distribution, but the underlying flow is identical: confirm KVM, install the right package, launch the GUI, and run a verification container. Most issues come from KVM permission glitches, which we cover up front.

By The Containers Desk Editorial team, usedocker.com

Last updated · Last verified

In a hurry? Make sure/dev/kvm exists, download the package matching your distro from our Linux download page, and apt-get install ./... (or dnf install ./...) it.

What you need before you start

  1. A supported distribution. Ubuntu 22.04 or 24.04, Debian 11 or 12, Fedora 39+, RHEL 9, or Arch Linux via the AUR.
  2. KVM-capable hardware. A 64-bit CPU with virtualization extensions, with /dev/kvm accessible to your user.
  3. A systemd-based system. Docker Desktop on Linux registers as a per-user systemd service.
  4. GNOME, KDE, or MATE recommended for the desktop integration. The engine still works under tiling WMs but you’ll lose the tray icon.

Step 1 — Confirm KVM is available

Three checks confirm KVM is set up correctly:

$ ls -l /dev/kvm
crw-rw---- 1 root kvm 10, 232 May 6 09:14 /dev/kvm

$ lsmod | grep kvm
kvm_intel             425984  0
kvm                  1216512  1 kvm_intel

$ groups | tr ' ' '\n' | grep -E '^kvm$'
kvm

The first command confirms the device node exists and is owned by the kvm group. The second confirms the kernel module is loaded. The third confirms your user is in the kvm group. If any check fails:

  • Missing /dev/kvm: virtualization is disabled in BIOS, or you’re inside a VM without nested virtualization. Enable it (Intel VT-x or AMD-V/SVM) and reboot.
  • Module not loaded: sudo modprobe kvm_intel or kvm_amd.
  • Not in group: sudo usermod -aG kvm $USER, then log out and back in.

Step 2 — Download the right package for your distro

Per-distribution packages are published as a signed .deb for Debian/Ubuntu, an .rpm for Fedora/RHEL, and an AUR package for Arch. Pick the right one on the Linux download page.

On a server or non-desktop Linux box, you may want Docker Engine instead of Desktop — it’s leaner and avoids the licensing tier.

Step 3 — Install via your package manager

Debian / Ubuntu

$ sudo apt-get update
$ sudo apt-get install \
    ./docker-desktop-4.42.0-amd64.deb

Fedora / RHEL

$ sudo dnf install \
    ./docker-desktop-4.42.0-x86_64.rpm

Arch Linux

$ yay -S docker-desktop
# or, with paru:
$ paru -S docker-desktop

The package manager pulls in any missing dependencies (qemu-system-x86, pass, uidmap, etc.) automatically.

Step 4 — Launch Docker Desktop

Start Docker Desktop from your desktop environment's application launcher. On first launch you'll be asked to accept the Docker Subscription Service Agreement. The engine boots inside a managed Linux VM via KVM (the same backend Docker Desktop uses on other platforms — on Linux the VM is hosted directly by KVM rather than a layered hypervisor).

You can also start the service from a terminal:

$ systemctl --user start docker-desktop
$ systemctl --user enable docker-desktop  # auto-start on login

Step 5 — Switch to the desktop-linux Docker context

If you also have Docker Engine installed on this host (docker.io package on Ubuntu, for example), the system docker command still talks to the system engine by default. Switch to the Desktop context:

$ docker context ls
NAME              DESCRIPTION                              DOCKER ENDPOINT
default *         Current DOCKER_HOST based configuration  unix:///var/run/docker.sock
desktop-linux                                              unix:///home/you/.docker/desktop/docker.sock

$ docker context use desktop-linux
desktop-linux

Switching contexts is a no-op if Docker Engine isn’t installed; the Desktop context will be the only one.

Step 6 — Verify the install

$ docker --version
Docker version 27.2.0, build d5c9a4b

$ docker context show
desktop-linux

$ docker run --rm hello-world
Hello from Docker!

From here you can jump to getting started, which walks you through running a real web server in a container.

Linux-specific configuration

Docker Engine and Docker Desktop on the same host

They coexist. The Desktop context uses a per-user socket; the system Engine uses /var/run/docker.sock. Switch between them with docker context use.

GPU passthrough (NVIDIA)

GPU support inside Docker Desktop on Linux is functional but limited compared to Engine + NVIDIA Container Toolkit on a bare-metal host. If you’re running ML or CUDA workloads, Engine is still the better fit.

Cap memory and CPU

Settings → Resources → memory and CPU sliders. Defaults are 4 GB RAM and 2 cores. Bump to 8 GB / 4 cores for heavier stacks.

Frequently asked questions

What are the system requirements for Docker Desktop on Linux?

Docker Desktop on Linux requires a 64-bit CPU with KVM virtualization support, 4 GB RAM minimum (8 GB recommended), at least 6 GB of free disk space, systemd as the init system, and a supported distribution: Ubuntu 22.04 or 24.04, Debian 11 or 12, Fedora 39+, RHEL 9, or Arch Linux via the AUR. GNOME, KDE, or MATE is recommended for the tray icon and desktop integration.

How much RAM does Docker Desktop use on Linux?

The same as on Windows and macOS: the VM idles at 1.2–2 GB, and a typical Compose stack (web server + API + Postgres) adds another 1–2 GB, for a realistic workday total of 3–4 GB. You can cap the ceiling in Settings → Resources → Memory. On Linux, Docker Desktop runs the VM via KVM rather than a layered hypervisor, which is slightly more efficient than on Windows or macOS.

Can I install Docker Desktop on Ubuntu without Docker Engine already installed?

Yes — Docker Desktop is a standalone package and does not require a pre-existing Docker Engine install. If you do have Docker Engine installed (the `docker.io` or `docker-ce` packages), both will coexist: Desktop uses a per-user socket while Engine uses `/var/run/docker.sock`. Switch between them with `docker context use desktop-linux` or `docker context use default`.

Does Docker Desktop on Linux require GNOME or a full desktop environment?

A desktop environment is recommended but not strictly required for the engine itself. GNOME, KDE, and MATE are officially supported for the tray icon and app launcher integration. On a system without a supported DE — such as a tiling WM like i3 or sway — you can start Docker Desktop via `systemctl --user start docker-desktop` and use the CLI normally; you just lose the system tray icon.

Should I install Docker Desktop or Docker Engine on Linux?

Install Docker Engine if you are working on a server, CI runner, or headless box — it runs natively, has no VM overhead, and carries no Desktop licensing. Install Docker Desktop if you are developing on a Linux workstation and want a GUI, Kubernetes toggle, Docker Scout, and the same experience as Windows and macOS colleagues. The two can coexist on the same machine.

Common Linux install errors

  • “Could not start kvm: permission denied” — your user isn’t in the kvm group or /dev/kvm isn’t world-accessible. sudo usermod -aG kvm $USER, log out and back in.
  • GUI launches but the engine never starts — check journalctl --user -u docker-desktop -f for the actual error. Most often it’s a missing dependency that the package manager skipped.
  • Slow file system performance with large bind mounts. Move hot paths into named volumes inside the VM, or use BuildKit’s RUN --mount=type=cache where it makes sense.

Sources

  1. [1] KVM kernel virtualization (linux-kvm.org)
  2. [2] systemd documentation (systemd.io)
  3. [3] Arch User Repository (wiki.archlinux.org)
  4. [4] docker-desktop tag on Stack Overflow