Fedora 44 makes a nice Docker host when you want newer packages without turning the whole server into a science project. The part that usually goes wrong is not Docker itself, but the pile of half-removed old packages, skipped repo setup, or permissions fixes that never quite land. Starting with Docker's own Fedora repository keeps the install predictable.
I am using Fedora Server 44 for this walkthrough. You will remove any old Docker packages, add Docker's official Fedora repository, install the engine and Compose plugin, start the service, and test everything with hello-world.
Minimum and recommended server size
Docker is light on its own, but the containers you stack on top of it are where resource usage starts to creep.
Minimum for this walkthrough
- 1 vCPU
- 1 GB RAM
- 10 GB free disk space
Recommended for a useful self-hosting base
- 2 vCPU
- 2 GB RAM
- 20 GB or more of free disk space
That recommended size gives you enough room to move straight into a real app, a reverse proxy, and a few volumes without the box feeling cramped right away.
What this guide covers
This walkthrough is written for Fedora Server 44. Docker's Fedora install docs currently target maintained Fedora releases, and the commands below match the Fedora 44 flow.
By the end, you will have:
- Docker Engine installed from Docker's official Fedora repository
- the Docker service running at boot
- Docker Compose available as a plugin
- one successful test container run
If you are brand new to Compose too, pair this with Docker Compose for Self-Hosted Apps: A Beginner-Friendly Guide once Docker itself is working.
One warning before you start
Fedora ships with firewalld, and Docker's published ports do not always behave the way people expect once containers start binding directly on the host. Treat exposed ports as real exposure, not as something firewalld will magically clean up for you later.
That is not a reason to avoid Docker. It is just a good habit to keep in mind before you start publishing every admin panel to the internet.
Step 1: Remove old Docker packages if they are present
If this server has seen earlier Docker experiments, clear the old packages out first.
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
If dnf says some or all of them are not installed, that is fine.
Step 2: Add Docker's official Fedora repository
sudo dnf config-manager addrepo --from-repofile https://download.docker.com/linux/fedora/docker-ce.repo
That adds Docker's maintained Fedora repository instead of relying on older distro packaging.
Step 3: Install Docker Engine and the standard plugins
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
If Fedora prompts you to accept Docker's GPG key, confirm the fingerprint matches the one shown in Docker's install documentation before you approve it.
Step 4: Start Docker now
sudo systemctl start docker
Step 5: Enable Docker at boot
sudo systemctl enable docker
Step 6: Check the Docker service status
sudo systemctl status docker
You want to see the service active and running here.
Step 7: Run the hello-world test container
sudo docker run hello-world
This confirms that the Docker client can talk to the daemon, pull an image, and start a container normally.
Step 8: Confirm the installed versions
docker --version
docker compose version
If both commands return cleanly, you have a working Docker CLI and the Compose plugin is available too.
Optional: Run Docker without sudo
A lot of people prefer not to type sudo every time they touch Docker.
Add your user to the docker group:
sudo usermod -aG docker $USER
Refresh group membership in your current shell:
newgrp docker
Then test Docker again without sudo:
docker run hello-world
Just remember what that convenience means: membership in the docker group is effectively root-level access.
Troubleshooting a rough first install
If Docker does not come up cleanly on Fedora 44, these checks usually show where things slipped.
Check the Docker service logs
sudo journalctl -u docker --no-pager -n 50
Confirm Fedora can see the Docker packages
dnf info docker-ce
Inspect the Docker repository file
sudo cat /etc/yum.repos.d/docker-ce.repo
Verify the Docker service is enabled
sudo systemctl is-enabled docker
The usual first-install problems are:
- old Docker packages still hanging around from earlier tests
- skipping Docker's official repository and pulling the wrong packages
- not starting the service after the install finishes
- adding your user to the
dockergroup but forgetting to refresh the session before testing again
What to do next
Once Docker is working, the next step is usually one of these:
- Docker Compose for Self-Hosted Apps: A Beginner-Friendly Guide
- How to Use Caddy as a Reverse Proxy for Self-Hosted Apps
- How to Install Nextcloud with Docker Compose
- How to Install Vaultwarden with Docker Compose
With Docker installed properly on Fedora, the rest of your self-hosting stack gets a lot easier to manage.
Was this article helpful?
Let me know so I can keep improving.
