We setup only Docker Engine using below method...
YouTube:
Uninstall existing docket lib:
dnf remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine \
podman \
runc
Actual output:
[root@localhost ~]# dnf remove docker \
> docker-client \
> docker-client-latest \
> docker-common \
> docker-latest \
> docker-latest-logrotate \
> docker-logrotate \
> docker-engine \
> podman \
> runc
No match for argument: docker
No match for argument: docker-client
No match for argument: docker-client-latest
No match for argument: docker-common
No match for argument: docker-latest
No match for argument: docker-latest-logrotate
No match for argument: docker-logrotate
No match for argument: docker-engine
No match for argument: podman
No match for argument: runc
No packages marked for removal.
Dependencies resolved.
Nothing to do.
Complete!
[root@localhost ~]#
Install docker repo:
dnf -y install dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
Output:
[root@localhost ~]# dnf -y install dnf-plugins-core
Last metadata expiration check: 0:22:01 ago on Fri 14 Nov 2025 10:55:20 PM UTC.
Package dnf-plugins-core-4.3.0-20.0.1.el9.noarch is already installed.
Dependencies resolved.
Nothing to do.
Complete!
[root@localhost ~]#
[root@localhost ~]# dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
Adding repo from: https://download.docker.com/linux/rhel/docker-ce.repo
[root@localhost ~]#
[root@localhost ~]# dnf repolist
repo id repo name
docker-ce-stable Docker CE Stable - x86_64
ol9_UEKR8 Oracle Linux 9 UEK Release 8 (x86_64)
ol9_appstream Oracle Linux 9 Application Stream Packages (x86_64)
ol9_baseos_latest Oracle Linux 9 BaseOS Latest (x86_64)
[root@localhost ~]#
Install docker CE or engine:
dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Output:
[root@localhost ~]# dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Docker CE Stable - x86_64 193 kB/s | 36 kB 00:00
Dependencies resolved.
=============================================================================================================================================================================
Package Architecture Version Repository Size
=============================================================================================================================================================================
Installing:
containerd.io x86_64 2.1.5-1.el9 docker-ce-stable 34 M
docker-buildx-plugin x86_64 0.30.0-1.el9 docker-ce-stable 17 M
docker-ce x86_64 3:29.0.1-1.el9 docker-ce-stable 21 M
docker-ce-cli x86_64 1:29.0.1-1.el9 docker-ce-stable 8.3 M
docker-compose-plugin x86_64 2.40.3-1.el9 docker-ce-stable 15 M
Installing dependencies:
container-selinux noarch 4:2.237.0-2.el9_6 ol9_appstream 73 k
fuse-common x86_64 3.10.2-9.el9 ol9_baseos_latest 7.1 k
fuse-overlayfs x86_64 1.14-1.el9 ol9_appstream 72 k
fuse3 x86_64 3.10.2-9.el9 ol9_appstream 62 k
fuse3-libs x86_64 3.10.2-9.el9 ol9_appstream 91 k
passt x86_64 0^20250217.ga1e48a0-13.el9_6 ol9_appstream 272 k
passt-selinux noarch 0^20250217.ga1e48a0-13.el9_6 ol9_appstream 31 k
Installing weak dependencies:
docker-ce-rootless-extras x86_64 29.0.1-1.el9 docker-ce-stable 3.4 M
Transaction Summary
=============================================================================================================================================================================
Install 13 Packages
Total download size: 100 M
Installed size: 404 M
Is this ok [y/N]: y
Downloading Packages:
(1/13): docker-buildx-plugin-0.30.0-1.el9.x86_64.rpm 8.8 MB/s | 17 MB 00:01
(2/13): docker-ce-29.0.1-1.el9.x86_64.rpm 8.5 MB/s | 21 MB 00:02
(3/13): containerd.io-2.1.5-1.el9.x86_64.rpm 9.8 MB/s | 34 MB 00:03
(4/13): docker-ce-cli-29.0.1-1.el9.x86_64.rpm 4.2 MB/s | 8.3 MB 00:01
(5/13): docker-ce-rootless-extras-29.0.1-1.el9.x86_64.rpm 2.2 MB/s | 3.4 MB 00:01
(6/13): fuse-common-3.10.2-9.el9.x86_64.rpm 27 kB/s | 7.1 kB 00:00
(7/13): container-selinux-2.237.0-2.el9_6.noarch.rpm 679 kB/s | 73 kB 00:00
(8/13): fuse-overlayfs-1.14-1.el9.x86_64.rpm 1.4 MB/s | 72 kB 00:00
(9/13): fuse3-3.10.2-9.el9.x86_64.rpm 1.0 MB/s | 62 kB 00:00
(10/13): fuse3-libs-3.10.2-9.el9.x86_64.rpm 1.2 MB/s | 91 kB 00:00
(11/13): passt-selinux-0^20250217.ga1e48a0-13.el9_6.noarch.rpm 1.2 MB/s | 31 kB 00:00
(12/13): passt-0^20250217.ga1e48a0-13.el9_6.x86_64.rpm 3.2 MB/s | 272 kB 00:00
(13/13): docker-compose-plugin-2.40.3-1.el9.x86_64.rpm 12 MB/s | 15 MB 00:01
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 21 MB/s | 100 MB 00:04
Docker CE Stable - x86_64 25 kB/s | 1.6 kB 00:00
Importing GPG key 0x621E9F35:
Userid : "Docker Release (CE rpm) <docker@docker.com>"
Fingerprint: 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
From : https://download.docker.com/linux/rhel/gpg
Is this ok [y/N]: y
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : passt-0^20250217.ga1e48a0-13.el9_6.x86_64 1/13
Running scriptlet: passt-selinux-0^20250217.ga1e48a0-13.el9_6.noarch 2/13
Installing : passt-selinux-0^20250217.ga1e48a0-13.el9_6.noarch 2/13
Running scriptlet: passt-selinux-0^20250217.ga1e48a0-13.el9_6.noarch 2/13
Installing : fuse3-libs-3.10.2-9.el9.x86_64 3/13
Running scriptlet: container-selinux-4:2.237.0-2.el9_6.noarch 4/13
Installing : container-selinux-4:2.237.0-2.el9_6.noarch 4/13
Running scriptlet: container-selinux-4:2.237.0-2.el9_6.noarch 4/13
Installing : docker-buildx-plugin-0.30.0-1.el9.x86_64 5/13
Running scriptlet: docker-buildx-plugin-0.30.0-1.el9.x86_64 5/13
Installing : docker-compose-plugin-2.40.3-1.el9.x86_64 6/13
Running scriptlet: docker-compose-plugin-2.40.3-1.el9.x86_64 6/13
Installing : docker-ce-cli-1:29.0.1-1.el9.x86_64 7/13
Running scriptlet: docker-ce-cli-1:29.0.1-1.el9.x86_64 7/13
Installing : containerd.io-2.1.5-1.el9.x86_64 8/13
Running scriptlet: containerd.io-2.1.5-1.el9.x86_64 8/13
Installing : fuse-common-3.10.2-9.el9.x86_64 9/13
Installing : fuse3-3.10.2-9.el9.x86_64 10/13
Installing : fuse-overlayfs-1.14-1.el9.x86_64 11/13
Running scriptlet: fuse-overlayfs-1.14-1.el9.x86_64 11/13
Installing : docker-ce-rootless-extras-29.0.1-1.el9.x86_64 12/13
Running scriptlet: docker-ce-rootless-extras-29.0.1-1.el9.x86_64 12/13
Installing : docker-ce-3:29.0.1-1.el9.x86_64 13/13
Running scriptlet: docker-ce-3:29.0.1-1.el9.x86_64 13/13
Running scriptlet: passt-selinux-0^20250217.ga1e48a0-13.el9_6.noarch 13/13
Running scriptlet: container-selinux-4:2.237.0-2.el9_6.noarch 13/13
Running scriptlet: docker-ce-3:29.0.1-1.el9.x86_64 13/13
Verifying : containerd.io-2.1.5-1.el9.x86_64 1/13
Verifying : docker-buildx-plugin-0.30.0-1.el9.x86_64 2/13
Verifying : docker-ce-3:29.0.1-1.el9.x86_64 3/13
Verifying : docker-ce-cli-1:29.0.1-1.el9.x86_64 4/13
Verifying : docker-ce-rootless-extras-29.0.1-1.el9.x86_64 5/13
Verifying : docker-compose-plugin-2.40.3-1.el9.x86_64 6/13
Verifying : fuse-common-3.10.2-9.el9.x86_64 7/13
Verifying : container-selinux-4:2.237.0-2.el9_6.noarch 8/13
Verifying : fuse-overlayfs-1.14-1.el9.x86_64 9/13
Verifying : fuse3-3.10.2-9.el9.x86_64 10/13
Verifying : fuse3-libs-3.10.2-9.el9.x86_64 11/13
Verifying : passt-0^20250217.ga1e48a0-13.el9_6.x86_64 12/13
Verifying : passt-selinux-0^20250217.ga1e48a0-13.el9_6.noarch 13/13
Installed:
container-selinux-4:2.237.0-2.el9_6.noarch containerd.io-2.1.5-1.el9.x86_64 docker-buildx-plugin-0.30.0-1.el9.x86_64
docker-ce-3:29.0.1-1.el9.x86_64 docker-ce-cli-1:29.0.1-1.el9.x86_64 docker-ce-rootless-extras-29.0.1-1.el9.x86_64
docker-compose-plugin-2.40.3-1.el9.x86_64 fuse-common-3.10.2-9.el9.x86_64 fuse-overlayfs-1.14-1.el9.x86_64
fuse3-3.10.2-9.el9.x86_64 fuse3-libs-3.10.2-9.el9.x86_64 passt-0^20250217.ga1e48a0-13.el9_6.x86_64
passt-selinux-0^20250217.ga1e48a0-13.el9_6.noarch
Complete!
[root@localhost ~]#
Enable auto start of docker on system reboot:
systemctl enable --now docker
Output:
[root@localhost ~]# systemctl enable --now docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
[root@localhost ~]#
[root@localhost ~]# systemctl
UNIT LOAD ACTIVE SUB DESCRIPTION >
proc-sys-fs-binfmt_misc.automount loaded active waiting Arbitrary Executable File Formats File System Automount P>
sys-devices-pci0000:00-0000:00:03.0-virtio0-net-eth0.device loaded active plugged Virtio network device
sys-devices-pci0000:00-0000:00:0d.0-ata3-host2-target2:0:0-2:0:0:0-block-sda-sda1.device loaded active plugged VBOX_HARDDISK biosboot
sys-devices-pci0000:00-0000:00:0d.0-ata3-host2-target2:0:0-2:0:0:0-block-sda-sda2.device loaded active plugged VBOX_HARDDISK boot
sys-devices-pci0000:00-0000:00:0d.0-ata3-host2-target2:0:0-2:0:0:0-block-sda-sda3.device loaded active plugged VBOX_HARDDISK pv_vol
sys-devices-pci0000:00-0000:00:0d.0-ata3-host2-target2:0:0-2:0:0:0-block-sda.device loaded active plugged VBOX_HARDDISK
sys-devices-platform-serial8250-serial8250:0-serial8250:0.0-tty-ttyS0.device loaded active plugged /sys/devices/platform/serial8250/serial8250:0/serial8250:>
sys-devices-platform-serial8250-serial8250:0-serial8250:0.1-tty-ttyS1.device loaded active plugged /sys/devices/platform/serial8250/serial8250:0/serial8250:>
sys-devices-platform-serial8250-serial8250:0-serial8250:0.2-tty-ttyS2.device loaded active plugged /sys/devices/platform/serial8250/serial8250:0/serial8250:>
sys-devices-platform-serial8250-serial8250:0-serial8250:0.3-tty-ttyS3.device loaded active plugged /sys/devices/platform/serial8250/serial8250:0/serial8250:>
sys-devices-virtual-block-dm\x2d0.device loaded active plugged /sys/devices/virtual/block/dm-0
sys-devices-virtual-block-dm\x2d1.device loaded active plugged /sys/devices/virtual/block/dm-1
sys-devices-virtual-misc-rfkill.device loaded active plugged /sys/devices/virtual/misc/rfkill
sys-devices-virtual-net-docker0.device loaded active plugged /sys/devices/virtual/net/docker0
sys-module-configfs.device loaded active plugged /sys/module/configfs
sys-module-fuse.device loaded active plugged /sys/module/fuse
sys-subsystem-net-devices-docker0.device loaded active plugged /sys/subsystem/net/devices/docker0
sys-subsystem-net-devices-eth0.device loaded active plugged Virtio network device >
-.mount loaded active mounted Root Mount
boot.mount loaded active mounted /boot
dev-hugepages.mount loaded active mounted Huge Pages File System
dev-mqueue.mount loaded active mounted POSIX Message Queue File System
run-credentials-systemd\x2dsysctl.service.mount loaded active mounted /run/credentials/systemd-sysctl.service
run-credentials-systemd\x2dtmpfiles\x2dsetup.service.mount loaded active mounted /run/credentials/systemd-tmpfiles-setup.service
run-credentials-systemd\x2dtmpfiles\x2dsetup\x2ddev.service.mount loaded active mounted /run/credentials/systemd-tmpfiles-setup-dev.service
run-user-1000.mount loaded active mounted /run/user/1000
sys-fs-fuse-connections.mount loaded active mounted FUSE Control File System
sys-kernel-config.mount loaded active mounted Kernel Configuration File System
sys-kernel-debug.mount loaded active mounted Kernel Debug File System
sys-kernel-tracing.mount loaded active mounted Kernel Trace File System
vagrant.mount loaded active mounted /vagrant >
systemd-ask-password-console.path loaded active waiting Dispatch Password Requests to Console Directory Watch
systemd-ask-password-wall.path loaded active waiting Forward Password Requests to Wall Directory Watch >
init.scope loaded active running System and Service Manager
session-3.scope loaded active running Session 3 of User vagrant
session-8.scope loaded active running Session 8 of User vagrant >
auditd.service loaded active running Security Auditing Service
chronyd.service loaded active running NTP client/server
containerd.service loaded active running containerd container runtime
crond.service loaded active running Command Scheduler
dbus-broker.service loaded active running D-Bus System Message Bus
docker.service loaded active running Docker Application Container Engine
dracut-shutdown.service loaded active exited Restore /run/initramfs on shutdown
getty@tty1.service loaded active running Getty on tty1
kmod-static-nodes.service loaded active exited Create List of Static Device Nodes
lvm2-monitor.service loaded active exited Monitoring of LVM2 mirrors, snapshots etc. using dmeventd>
NetworkManager-dispatcher.service loaded active running Network Manager Script Dispatcher Service
NetworkManager-wait-online.service loaded active exited Network Manager Wait Online
NetworkManager.service loaded active running Network Manager
nis-domainname.service loaded active exited Read and set NIS domainname from /etc/sysconfig/network
rsyslog.service loaded active running System Logging Service
sshd.service loaded active running OpenSSH server daemon
systemd-boot-update.service loaded active exited Automatic Boot Loader Update
systemd-journal-flush.service loaded active exited Flush Journal to Persistent Storage
systemd-journald.service loaded active running Journal Service
systemd-logind.service loaded active running User Login Management
systemd-network-generator.service loaded active exited Generate network units from Kernel command line
systemd-random-seed.service loaded active exited Load/Save OS Random Seed
systemd-remount-fs.service loaded active exited Remount Root and Kernel File Systems
systemd-sysctl.service loaded active exited Apply Kernel Variables
[root@localhost ~]#
Start docker:
systemctl start docker
Output:
[root@localhost ~]#
[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: disabled)
Active: active (running) since Fri 2025-11-14 23:25:12 UTC; 21s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 17815 (dockerd)
Tasks: 9
Memory: 26.2M
CPU: 1.873s
CGroup: /system.slice/docker.service
└─17815 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Nov 14 23:25:11 localhost.localdomain dockerd[17815]: time="2025-11-14T23:25:11.025543170Z" level=info msg="Deleting nftables IPv4 rules" error="exit status 1"
Nov 14 23:25:11 localhost.localdomain dockerd[17815]: time="2025-11-14T23:25:11.063253537Z" level=info msg="Deleting nftables IPv6 rules" error="exit status 1"
Nov 14 23:25:12 localhost.localdomain dockerd[17815]: time="2025-11-14T23:25:12.629748080Z" level=info msg="Loading containers: done."
Nov 14 23:25:12 localhost.localdomain dockerd[17815]: time="2025-11-14T23:25:12.674119568Z" level=info msg="Docker daemon" commit=198b5e3 containerd-snapshotter=true storag>
Nov 14 23:25:12 localhost.localdomain dockerd[17815]: time="2025-11-14T23:25:12.675004424Z" level=info msg="Initializing buildkit"
Nov 14 23:25:12 localhost.localdomain dockerd[17815]: time="2025-11-14T23:25:12.720471392Z" level=warning msg="git source cannot be enabled: failed to find git binary: exec>
Nov 14 23:25:12 localhost.localdomain dockerd[17815]: time="2025-11-14T23:25:12.744591649Z" level=info msg="Completed buildkit initialization"
Nov 14 23:25:12 localhost.localdomain dockerd[17815]: time="2025-11-14T23:25:12.770855815Z" level=info msg="Daemon has completed initialization"
Nov 14 23:25:12 localhost.localdomain dockerd[17815]: time="2025-11-14T23:25:12.771320556Z" level=info msg="API listen on /run/docker.sock"
Nov 14 23:25:12 localhost.localdomain systemd[1]: Started Docker Application Container Engine.
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]#
Test docket:
docker run hello-world
Output:
[root@localhost ~]#
[root@localhost ~]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
17eec7bbc9d7: Pull complete
Digest: sha256:f7931603f70e13dbd844253370742c4fc4202d290c80442b2e68706d8f33ce26
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
[root@localhost ~]#
No comments:
Post a Comment