Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run Scan×
Skip to content
World desk10 min

How to Install and Run Docker on RHEL 9

Docker runs on RHEL 9 through Docker’s upstream RPM repository, but Red Hat considers upstream Docker unsupported. Follow the exact DNF, systemd and verification commands, then choose between Docker and Red Hat’s supported Podman workflow.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Docker can be installed on RHEL 9 from Docker’s upstream RPM repository, but it is not Red Hat-supported container software on this release. The supported Red Hat workflow uses Podman, Buildah and Skopeo. If you specifically need the Docker Engine, install Docker’s packages with DNF, start the daemon explicitly, and verify it with sudo docker run hello-world.

Understand the support choice before installing

There are two separate questions behind “Does Docker work on RHEL 9?” Docker publishes RHEL 9 as a maintained installation target and provides an RPM repository for it. Red Hat’s RHEL 9 container documentation, however, says Docker obtained from upstream projects is unsupported on RHEL 9. Installing successfully therefore does not mean that Red Hat will support the Docker Engine in a subscription support case.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Red Hat removed the Docker container engine and the docker command from RHEL 8. Its supported replacement is the container-tools meta-package, which supplies Podman, Buildah, Skopeo and related libraries. Choose the Docker path when your application, development workflow or orchestration tooling specifically requires the Docker daemon and native Docker CLI. Choose Red Hat’s container-tools when supportability inside a RHEL subscription is the priority.

Docker Engine and RHEL container-tools compared

Aspect Docker Engine from Docker’s repository RHEL container-tools and Podman
Package source Docker’s upstream RPM repository Red Hat repositories and subscriptions
RHEL support posture Docker documents installation; Red Hat calls upstream Docker unsupported on RHEL 9 Red Hat’s supported container workflow
Architecture A Docker daemon managed by systemd Podman is daemonless; podman-docker can provide command and socket-API compatibility
Compatibility Native Docker CLI, Compose and Docker ecosystem Many Docker commands work, but Docker-specific features such as Swarm and plugins are not supported

The optional podman-docker package makes the docker command invoke Podman and can link the Docker socket API to Podman’s socket. It is not a complete Docker replacement: Red Hat specifically lists network, node, plugin, rename, secret, service, stack and swarm as unsupported compatibility areas.

#1 Best Overall
Sale
TOZO A1 Wireless Earbuds Bluetooth 5.3 Light Weight in Ear Headphones | IPX5 Waterproof,2 Mics for AI Calls,Immersive Premium Sound Bass Headset with Charging Case,32 EQ via App Black
  • [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
  • [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
  • [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
  • [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
  • [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.

Prepare the RHEL 9 host

Confirm architecture and administrative access

You need a RHEL 9 system, an account with sudo privileges, and network access to Docker’s package repository for the normal installation. Docker packages are architecture-specific. On an offline or mixed-architecture estate, download RPMs for the exact architecture of each target host rather than copying an RPM built for another machine.

Keep the host’s RHEL repositories and subscription configuration healthy. Docker’s packages depend on system libraries and the container runtime; DNF must be able to obtain those dependencies or you must stage them for an offline installation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Remove conflicting packages when present

Docker’s RHEL procedure says to remove conflicting distribution packages before installing Docker Engine. Check the host for older Docker packages or other packages that provide the same engine components. Do not remove a package blindly on a production server: first identify what depends on it, stop workloads that use it, and preserve any configuration or container data that must be retained.

If the machine is intended to use Red Hat’s Podman workflow instead, do not install Docker merely to obtain a familiar command name. The podman-docker compatibility package is a separate choice and has the feature limitations described above.

Install Docker Engine from Docker’s RPM repository

1. Install the DNF repository helper

Install dnf-plugins-core, which provides the config-manager command used to add repositories:

sudo dnf -y install dnf-plugins-core

2. Add Docker’s RHEL repository

Add the repository file published by Docker:

sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo

Review the repository configuration if your organization uses a proxy, an internal mirror or repository allowlists. A successful repository addition only makes package metadata available; it does not install or start the engine.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

3. Install the engine, CLI, runtime and plugins

Install the current package set with one DNF transaction:

sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • docker-ce is the Docker Engine daemon.
  • docker-ce-cli supplies the command-line client.
  • containerd.io supplies the container runtime used by Docker.
  • docker-buildx-plugin adds the Buildx builder.
  • docker-compose-plugin provides the Compose subcommand.

During installation, DNF may ask you to accept Docker’s signing key. Docker instructs administrators to verify this fingerprint before accepting it:

Rank #2
Sale
Smart Watch for Men Women Compatible with iPhone Samsung Android Phone 1.69 inch Full Touch Screen IP68 Waterproof Bluetooh Fitness Tracker Heart Rate/Sleep Monitor (Black)
  • 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
  • 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
  • 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
  • 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
  • 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.

060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35

Compare the displayed fingerprint with that value using your organization’s package-signing procedure. Do not approve an unexpected key simply because the installation is waiting for input.

The package transaction installs Docker but does not start the daemon. It also creates a docker Unix group; no users are added to that group automatically.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

4. Start Docker and enable boot startup

Start the daemon immediately and configure systemd to start it on future boots:

sudo systemctl enable --now docker

If you deliberately do not want Docker to start at boot, start it only for the current session:

sudo systemctl start docker

Use systemctl status docker to inspect whether the service is active. Enabling a service and starting a service are different operations: enable changes boot behavior, while start launches the current daemon.

5. Verify the installation with the documented test image

Run Docker’s standard verification command:

sudo docker run hello-world

Docker describes this command as downloading a test image, running it in a container, printing a confirmation message and then exiting. The first run requires access to the image registry. A successful confirmation proves that the CLI can contact the daemon, the daemon can obtain an image and a container can start and exit normally.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Run a useful first container

After hello-world, a small web container demonstrates image retrieval, detached execution, naming and port publishing:

sudo docker run -d --name web -p 8080:80 nginx

This example uses the nginx image, runs it in the background with -d, assigns the container the name web, and maps host port 8080 to port 80 inside the container. The mapping is directional: requests sent to 127.0.0.1:8080 on the RHEL host are forwarded to port 80 in the container. Publishing a port is explicit; a container’s listening port is not automatically reachable from the host.

Rank #3
New Bee Guitar Cable 10ft Electric Instrument Bass AMP Cord
  • [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
  • [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
  • [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
  • [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
  • [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by

Inspect the running container and request the page:

sudo docker ps
curl http://127.0.0.1:8080

The command sequence is an example for learning the lifecycle; it is not a claim that the container was run on your host. Image tags can change over time, so production deployments should select an image source and tag policy appropriate for your organization.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Basic container lifecycle commands

Purpose Command
List running containers sudo docker ps
List running and stopped containers sudo docker ps -a
Read the container’s output sudo docker logs web
Stop the named container sudo docker stop web
Remove a stopped container sudo docker rm web

Stopping a container does not remove it. Removing a container does not necessarily remove the image it was created from, and neither operation automatically deletes volumes that may contain application data. Treat names, image tags, ports and persistent storage as separate lifecycle decisions.

Decide whether to use sudo or the docker group

The initial commands use sudo because access to the Docker daemon is privileged. Docker creates a docker group during installation but does not add the installing user or any other account to it.

If your security policy permits non-root Docker CLI access, an administrator can add a specific account deliberately:

sudo usermod -aG docker <USER>

Replace <USER> with the intended login name. The user must start a new login session, or refresh group membership in the current shell, before the change is recognized. Verify with:

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
id
docker run hello-world

Membership in the Docker group is a powerful privilege. A user who can control the Docker daemon can generally start containers with host-mounted filesystems and obtain control comparable to root. Grant the group only to accounts that require it, record the decision, and retain sudo usage when stronger separation is needed. If you do not make this deliberate privilege change, continue using sudo docker ....

Pin a Docker version for change-controlled hosts

Installing without a version constraint selects the current version available from the enabled repositories. For a controlled environment, first list versions visible to that host:

Rank #4
BSIMB 15.6" Digital Family Calendar & Chore Chart, No Subscription Fees
  • Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
  • Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
  • All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
  • Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
  • Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.
dnf list docker-ce --showduplicates | sort -r

RHEL 9 package versions show an .el9 suffix. The available list depends on the host’s enabled repositories and its RHEL release. Select a complete Docker package set that is intended to work together rather than mixing arbitrary daemon, CLI, runtime and plugin releases.

Install a fully qualified version by replacing <VERSION_STRING> in the package command:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sudo dnf install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-buildx-plugin docker-compose-plugin

Use the exact version syntax displayed by DNF. If a matching version is unavailable for one component, stop and resolve repository availability instead of silently combining an untested set. Pinning helps reproduce approved builds, but it creates a maintenance obligation: monitor security advisories and schedule upgrades rather than leaving the host permanently frozen.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Install Docker on an air-gapped RHEL 9 host

Hosts without repository access can use Docker’s manual RPM route. Perform the downloads on a connected system, using the same CPU architecture and package versions required by the target. Stage these packages together:

  • containerd.io
  • docker-ce
  • docker-ce-cli
  • docker-buildx-plugin
  • docker-compose-plugin

Copy the RPM files to the offline host through your approved transfer process, then install the local files:

sudo dnf 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
sudo systemctl enable --now docker
sudo docker run hello-world

The placeholders must be replaced with the actual filenames, including the target architecture. A disconnected host also needs every dependency that is not already installed; DNF cannot download a missing dependency when the machine has no repository access. Validate RPM signatures and transfer integrity according to your organization’s process before installation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Manual installation has an operational cost: upgrades require repeating the download, transfer and local-install process for each new package set. Maintain an inventory of the exact RPM versions deployed to each air-gapped host.

Troubleshoot the first start and verification

The service is not running

Check systemd’s current state:

sudo systemctl status docker

If the service failed, inspect its journal for the first concrete error:

sudo journalctl -u docker -xe

Common categories include a missing dependency, an invalid daemon configuration, a conflict with an older container runtime, insufficient storage, or a repository package mismatch. Correct the underlying error, then retry:

sudo systemctl restart docker

docker run hello-world cannot reach the daemon

Confirm that the daemon is active and that your command is using the expected privilege level. If you have not intentionally configured Docker-group access, run the test with sudo. A running service with a non-root command can still fail when the user lacks permission to access Docker’s Unix socket.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The image cannot be downloaded

The verification command needs outbound access to the image registry. Check firewall, proxy and DNS policy, and confirm that the host can reach the registry permitted by your organization. On an air-gapped host, the normal pull step cannot work unless images are imported through an approved offline workflow; the RPM installation alone does not preload container images.

The web example is unreachable

Confirm that the container is running with sudo docker ps, inspect output with sudo docker logs web, and verify that the host port is published as 0.0.0.0:8080->80/tcp or the equivalent mapping shown by Docker. If another process already owns port 8080, remove the stopped example and recreate it with an unused host port, such as -p 8081:80. Host firewall policy can also block access from remote machines; testing 127.0.0.1 first separates local container problems from network exposure rules.

Upgrade Docker safely

Docker recommends repeating the installation procedure for upgrades. Before changing packages on a production host, record the current versions, identify running containers, check maintenance impact and confirm that backups cover application data stored in volumes or bind mounts.

With the repository configured, DNF can show available updates and apply the approved package set. After the upgrade, check the daemon and run a verification or application smoke test:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sudo systemctl status docker
sudo docker ps

For pinned installations, select and approve a newer version explicitly instead of allowing an unplanned update. For air-gapped systems, repeat the architecture-specific download and transfer process for all five Docker RPM components and any new dependencies.

Remove Docker without deleting data by accident

Docker’s removal procedure uninstalls Docker Engine, the CLI, containerd, Buildx and Compose packages. Package removal does not automatically delete images, containers, volumes or custom configuration. That behavior protects data but can leave substantial disk usage behind.

Before removal, list workloads and decide what must be retained. Export or back up anything needed by another runtime, then uninstall the packages through DNF using the package names that are present on the host. Do not treat package removal as a data-wipe operation.

Docker stores persistent data under locations including /var/lib/docker and /var/lib/containerd. Deleting those directories removes stored images, containers, volumes and runtime data and is destructive. Perform that deletion only after an explicit administrator decision, verified backups and confirmation that no workload still depends on the data.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choose the right path for your RHEL 9 estate

  • Need native Docker behavior, Compose or Docker-specific tooling: use Docker’s upstream repository, accept that Red Hat classifies it as unsupported on RHEL 9, and manage the daemon, updates and privileges yourself.
  • Need Red Hat support and the standard RHEL container stack: install the container-tools workflow and use Podman, Buildah and Skopeo.
  • Need familiar Docker syntax but not Docker-only features: evaluate podman-docker, while checking every command your scripts use against its documented compatibility limits.
  • Need an offline Docker host: stage matching architecture RPMs and dependencies, verify them, install locally, and plan a repeatable upgrade-transfer process.

For the Docker route, the essential sequence is: add Docker’s RHEL repository, install the five packages, verify the signing key when prompted, run sudo systemctl enable --now docker, and finish with sudo docker run hello-world. The support decision should be made before deployment, because a successful installation does not change Red Hat’s unsupported status for upstream Docker on RHEL 9.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.