To get started with Docker Engine on Fedora, make sure you meet the prerequisites, and then follow the installation steps.
Prerequisites#
OS requirements#
To install Docker Engine, you need a maintained version of one of the following Fedora versions:
- Fedora 39
- Fedora 40
Uninstall old versions#
Older versions of Docker went by docker
or docker-engine
.
Uninstall any such older versions before attempting to install a new version,
along with associated dependencies.
$ 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
dnf
might report that you have none of these packages installed.
Images, containers, volumes, and networks stored in /var/lib/docker/
aren't
automatically removed when you uninstall Docker.
Installation methods#
You can install Docker Engine in different ways, depending on your needs:
-
You can set up Docker's repositories and install from them, for ease of installation and upgrade tasks. This is the recommended approach.
-
You can download the RPM package, install it manually, and manage upgrades completely manually. This is useful in situations such as installing Docker on air-gapped systems with no access to the internet.
-
In testing and development environments, you can use automated convenience scripts to install Docker.
Install using the rpm repository#
Before you install Docker Engine for the first time on a new host machine, you need to set up the Docker repository. Afterward, you can install and update Docker from the repository.
Set up the repository#
Install the dnf-plugins-core
package (which provides the commands to manage
your DNF repositories) and set up the repository.
$ sudo dnf -y install dnf-plugins-core
$ sudo dnf config-manager --add-repo \{\{\% param "download-url-base" \%\}\}/docker-ce.repo
Install Docker Engine#
- Install Docker Engine, containerd, and Docker Compose:
{ { < tabs > } } { { < tab name="Latest" > } }
To install the latest version, run:
console
$ sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
If prompted to accept the GPG key, verify that the fingerprint matches
060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
, and if so, accept it.
This command installs Docker, but it doesn't start Docker. It also creates a
docker
group, however, it doesn't add any users to the group by default.
{ { < /tab > } } { { < tab name="Specific version" > } }
To install a specific version, start by listing the available versions in the repository:
```console $ dnf list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:27.1.1-1.fc40 docker-ce-stable docker-ce.x86_64 3:27.1.0-1.fc40 docker-ce-stable <...> ```
The list returned depends on which repositories are enabled, and is specific
to your version of Fedora (indicated by the .fc40
suffix in this example).
Install a specific version by its fully qualified package name, which is
the package name (docker-ce
) plus the version string (2nd column),
separated by a hyphen (-
). For example, docker-ce-3:27.1.1-1.fc40
.
Replace <VERSION_STRING>
with the desired version and then run the following
command to install:
console
$ sudo dnf -y install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-buildx-plugin docker-compose-plugin
This command installs Docker, but it doesn't start Docker. It also creates a
docker
group, however, it doesn't add any users to the group by default.
{ { < /tab > } } { { < /tabs > } }
- Start Docker.
console
$ sudo systemctl start docker
- Verify that the Docker Engine installation is successful by running the
hello-world
image.
console
$ sudo docker run hello-world
This command downloads a test image and runs it in a container. When the container runs, it prints a confirmation message and exits.
You have now successfully installed and started Docker Engine.
{ { < include "root-errors.md" > } }
Upgrade Docker Engine#
To upgrade Docker Engine, follow the installation instructions, choosing the new version you want to install.
Install from a package#
If you can't use Docker's rpm
repository to install Docker Engine, you can
download the .rpm
file for your release and install it manually. You need to
download a new file each time you want to upgrade Docker Engine.
-
Go to {{\% param "download-url-base" %}}/ and choose your version of Fedora. Then browse to
x86_64/stable/Packages/
and download the.rpm
file for the Docker version you want to install. -
Install Docker Engine, changing the following path to the path where you downloaded the Docker package.
console
$ sudo dnf -y install /path/to/package.rpm
Docker is installed but not started. The docker
group is created, but no
users are added to the group.
- Start Docker.
console
$ sudo systemctl start docker
- Verify that the Docker Engine installation is successful by running the
hello-world
image.
console
$ sudo docker run hello-world
This command downloads a test image and runs it in a container. When the container runs, it prints a confirmation message and exits.
You have now successfully installed and started Docker Engine.
{ { < include "root-errors.md" > } }
Upgrade Docker Engine#
To upgrade Docker Engine, download the newer package files and repeat the
installation procedure, using dnf -y upgrade
instead of dnf -y install
, and point to the new files.
{ { < include "install-script.md" > } }
Uninstall Docker Engine#
- Uninstall the Docker Engine, CLI, containerd, and Docker Compose packages:
console
$ sudo dnf remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
- Images, containers, volumes, or custom configuration files on your host aren't automatically removed. To delete all images, containers, and volumes:
console
$ sudo rm -rf /var/lib/docker
$ sudo rm -rf /var/lib/containerd
You have to delete any edited configuration files manually.
Next steps#
- Continue to Post-installation steps for Linux.