{ { % experimental \%}} Support for Docker Engine on RHEL x86_64 and aarch64 is experimental. { { % /experimental \%}}
{ { % restricted title="Docker Desktop for Linux is also available for RHEL." \%}} To get access, join the Early Access Program. { { % /restricted \%}}
To get started with Docker Engine on RHEL, 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 RHEL versions:
- RHEL 8
- RHEL 9
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. Also uninstall Podman
and the associated
dependencies if installed already:
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine \
podman \
runc
yum
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 yum-utils
package (which provides the yum-config-manager
utility) and set up the repository.
$ sudo yum install -y yum-utils
$ sudo yum-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 yum 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 $ yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:27.1.1-1.el9 docker-ce-stable docker-ce.x86_64 3:27.1.0-1.el9 docker-ce-stable <...> ```
The list returned depends on which repositories are enabled, and is specific
to your version of RHEL (indicated by the .el9
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.el9
.
Replace <VERSION_STRING>
with the desired version and then run the following
command to install:
console
$ sudo yum 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.
-
Select your RHEL version in the list.
-
Select the applicable architecture (
x86_64
,aarch64
, ors390x
), and then go tostable/Packages/
. -
Download the following
rpm
files for the Docker Engine, CLI, containerd, and Docker Compose packages: -
containerd.io-<version>.<arch>.rpm
docker-ce-<version>.<arch>.rpm
docker-ce-cli-<version>.<arch>.rpm
docker-buildx-plugin-<version>.<arch>.rpm
-
docker-compose-plugin-<version>.<arch>.rpm
-
Install Docker Engine, changing the following path to the path where you downloaded the packages.
console
$ sudo yum install ./containerd.io-<version>.<arch>.rpm \
./docker-ce-<version>.<arch>.rpm \
./docker-ce-cli-<version>.<arch>.rpm \
./docker-buildx-plugin-<version>.<arch>.rpm \
./docker-compose-plugin-<version>.<arch>.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 yum -y upgrade
instead of yum -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 yum 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.