Updated: 10 October 2026 · Applies to: Fedora 44 with dnf5 (tested: Docker Engine 29.9.0, Compose 5.6.0, Buildx 0.38.0; Fedora moby-engine 29.7.2); same steps on Fedora 43 and 45 according to Docker

To install Docker on Fedora, add Docker's repository and install Docker Engine with dnf, then start the service:

sudo dnf config-manager addrepo --from-repofile https://download.docker.com/linux/fedora/docker-ce.repo
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo docker run hello-world

These are the commands from Docker's own guide, which supports the Fedora releases that are still maintained (Fedora 43 and 44, and it already lists 45). The step-by-step version with the output we got on Fedora 44 follows. Fedora also packages Docker itself (moby-engine), covered further down.

Install Docker Engine from Docker's repository

  1. Remove old or conflicting packages. It is fine if none are installed; dnf then prints No packages to remove for argument for each name and Nothing to do.:
    sudo dnf remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
    Also remove Fedora's moby-engine and podman-docker if you installed them: in our test both conflicted with Docker's packages.
  2. Add the repository. Fedora 41 and later use dnf5, where config-manager comes from the dnf5-plugins package. If dnf answers Unknown argument "config-manager" for command "dnf5", install it first:
    sudo dnf install dnf5-plugins
    sudo dnf config-manager addrepo --from-repofile https://download.docker.com/linux/fedora/docker-ce.repo
    Note that dnf install dnf-plugins-core, which older guides give, did not help on Fedora 44: it installed 53 packages for the old dnf 4 and the error stayed. The old option --add-repo fails with Unknown argument "--add-repo" for command "config-manager".
  3. Install Docker Engine with the Buildx and Compose plugins:
    sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    dnf asks you to import Docker's key. Accept it only if the fingerprint matches the one Docker publishes, 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35:
    Importing OpenPGP key 0x621E9F35:
     UserID     : "Docker Release (CE rpm) <docker@docker.com>"
     Fingerprint: 060A61C51B558A7F742B77AAC52FEB6B621E9F35
     From       : https://download.docker.com/linux/fedora/gpg
    In our test this installed 55 packages (129 MiB), including container-selinux for SELinux and docker-ce-rootless-extras.
  4. Check the versions:
    $ docker --version
    Docker version 29.9.0, build f415da8
    $ docker compose version
    Docker Compose version v5.6.0
    $ docker buildx version
    github.com/docker/buildx v0.38.0 0dbe87f36ed472fe36b6796c3f70b4210a731fc5
  5. Start Docker now and at every boot. The package does not start it for you:
    sudo systemctl enable --now docker
  6. Test it:
    sudo docker run hello-world
    The hello-world image prints:
    Hello from Docker!
    This message shows that your installation appears to be working correctly.

Run docker without sudo

The install creates a docker group with no members (docker:x:996: in our test). Add your user and start a new login session, or run newgrp docker:

sudo usermod -aG docker $USER

According to Docker, the docker group grants root-level privileges, so add only users you would also give sudo.

Option: Fedora's own Docker packages

Fedora builds Docker from the same open-source code (Moby). It needs no extra repository and updates with the rest of Fedora:

sudo dnf install moby-engine docker-compose
sudo systemctl enable --now docker

On Fedora 44 this gave Docker version 29.7.2, build 1.fc44, Compose 5.5.1 (both docker compose and docker-compose work) and Buildx 0.37.2, a little behind Docker's repository. Use one source or the other, not both.

If you do not need the Docker daemon, Fedora's Podman runs the same images without one: sudo dnf install podman. The podman-docker package adds a docker command that calls Podman.

Compose, updates and versions

  • Compose is a plugin, used as docker compose up -d and docker compose ps (with a space).
  • sudo dnf upgrade updates Docker with your other packages.
  • To see or pin versions: dnf list --showduplicates docker-ce listed 29.8.0 to 29.9.0 for Fedora 44 (3:29.9.0-1.fc44 and so on). Install one by adding the version to the package names:
    sudo dnf install docker-ce-29.8.2 docker-ce-cli-29.8.2 containerd.io docker-buildx-plugin docker-compose-plugin
    Do not copy the 3: prefix to docker-ce-cli: its epoch is 1:, and docker-ce-cli-3:29.8.2-1.fc44 gave No match for argument.

Common problems

  • "failed to connect to the docker API at unix:///var/run/docker.sock": the daemon is not running. Docker 29.9 printed this in our test; older versions say "Cannot connect to the Docker daemon". Start it with sudo systemctl start docker. For a normal user, also check that you logged in again after joining the docker group.
  • Docker does not start and journalctl -u docker shows "failed to find iptables": according to Docker, run sudo alternatives --set iptables /usr/bin/iptables-nft and restart Docker.
  • A published port is reachable from the internet although you never opened it in firewalld: according to Docker, published ports are available to the outside world by default, and Docker puts its networks in its own firewalld zone (target ACCEPT) with a forwarding policy from any zone. Publish internal services on localhost only, for example -p 127.0.0.1:8080:80.
  • Package conflicts: remove moby-engine, docker-cli or podman-docker before installing docker-ce (and the other way round).

Uninstall Docker

sudo dnf remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
sudo rm -rf /var/lib/docker /var/lib/containerd

The second line deletes all images, containers and volumes, so back up anything you need first.

For a server, AlmaLinux or Rocky Linux is usually the better base, because each release gets about ten years of updates instead of about thirteen months: see how to install Docker on a VPS for Ubuntu, Debian, AlmaLinux and Rocky Linux. A Ucartz KVM VPS gives you full root access to run Docker, with Free Basic Managed Support.

Official documentation: Install Docker Engine on Fedora and Linux post-installation steps.

Was this answer helpful? 0 Users Found This Useful (0 Votes)