| OS | Oracle Linux 9 |
[root@docker ~]# dnf update -y
Last metadata expiration check: 0:17:07 ago on Mon 18 May 2026 06:48:07 PM.
Dependencies resolved.
Nothing to do.
Complete!
[root@docker ~]#
[root@docker ~]# dnf install -y dnf-utils yum-utils device-mapper-persistent-data lvm2
Last metadata expiration check: 0:17:34 ago on Mon 18 May 2026 06:48:07 PM.
Package device-mapper-persistent-data-1.1.0-1.el9.x86_64 is already installed.
Package lvm2-9:2.03.32-2.el9_7.2.x86_64 is already installed.
Dependencies resolved.
==================================================================================
Package Architecture Version Repository Size
==================================================================================
Installing:
yum-utils noarch 4.3.0-24.0.1.el9 ol9_baseos_latest 52k
Transaction Summary
==================================================================================
Install 1 Package
Total download size: 52 k
Installed size: 23 k
Downloading Packages:
yum-utils-4.3.0-24.0.1.el9_7.noarch.rpm 98 kB/s | 52 kB 00:00
----------------------------------------------------------------------------------
Total 97 kB/s | 52 kB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : yum-utils-4.3.0-24.0.1.el9_7.noarch 1/1
Running scriptlet: yum-utils-4.3.0-24.0.1.el9_7.noarch 1/1
Verifying : yum-utils-4.3.0-24.0.1.el9_7.noarch 1/1
Installed:
yum-utils-4.3.0-24.0.1.el9_7.noarch
Complete!
[root@docker ~]#
[root@docker ~]# dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
Adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
[root@docker ~]#
[root@docker ~]# 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@docker ~]#
[root@docker ~]# dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Docker CE Stable - x86_64 52 kB/s | 76 kB 00:01
Last metadata expiration check: 0:00:01 ago on Mon 18 May 2026 07:10:35 PM.
Dependencies resolved.
===================================================================================================================
Package Architecture Version Repository Size
===================================================================================================================
Installing:
containerd.io x86_64 2.2.3-1.el9 docker-ce-stable 35 M
docker-buildx-plugin x86_64 0.34.0-1.el9 docker-ce-stable 18 M
docker-ce x86_64 3:29.5.0-1.el9 docker-ce-stable 24 M
docker-ce-cli x86_64 1:29.5.0-1.el9 docker-ce-stable 8.6 M
docker-compose-plugin x86_64 5.1.3-1.el9 docker-ce-stable 8.4 M
Installing weak dependencies:
docker-ce-rootless-extras x86_64 29.5.0-1.el9 docker-ce-stable 5.6 M
Transaction Summary
===================================================================================================================
Install 6 Packages
Total download size: 100 M
Installed size: 378 M
Downloading Packages:
(1/6): docker-buildx-plugin-0.34.0-1.el9.x86_64.rpm 3.9 MB/s | 18 MB 00:04
(2/6): docker-ce-29.5.0-1.el9.x86_64.rpm 4.2 MB/s | 24 MB 00:05
(3/6): docker-ce-rootless-extras-29.5.0-1.el9.x86_64.rpm 4.8 MB/s | 5.6 MB 00:01
(4/6): docker-ce-cli-29.5.0-1.el9.x86_64.rpm 2.8 MB/s | 8.6 MB 00:03
(5/6): docker-compose-plugin-5.1.3-1.el9.x86_64.rpm 4.4 MB/s | 8.4 MB 00:01
(6/6): containerd.io-2.2.3-1.el9.x86_64.rpm 3.7 MB/s | 35 MB 00:09
-------------------------------------------------------------------------------------------------------------------
Total 10 MB/s | 100 MB 00:09
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : docker-buildx-plugin-0.34.0-1.el9.x86_64 1/6
Running scriptlet: docker-buildx-plugin-0.34.0-1.el9.x86_64 1/6
Installing : docker-compose-plugin-5.1.3-1.el9.x86_64 2/6
Running scriptlet: docker-compose-plugin-5.1.3-1.el9.x86_64 2/6
Installing : docker-ce-cli-1:29.5.0-1.el9.x86_64 3/6
Running scriptlet: docker-ce-cli-1:29.5.0-1.el9.x86_64 3/6
Installing : containerd.io-2.2.3-1.el9.x86_64 4/6
Running scriptlet: containerd.io-2.2.3-1.el9.x86_64 4/6
Installing : docker-ce-rootless-extras-29.5.0-1.el9.x86_64 5/6
Running scriptlet: docker-ce-rootless-extras-29.5.0-1.el9.x86_64 5/6
Installing : docker-ce-3:29.5.0-1.el9.x86_64 6/6
Running scriptlet: docker-ce-3:29.5.0-1.el9.x86_64 6/6
Verifying : containerd.io-2.2.3-1.el9.x86_64 1/6
Verifying : docker-buildx-plugin-0.34.0-1.el9.x86_64 2/6
Verifying : docker-ce-3:29.5.0-1.el9.x86_64 3/6
Verifying : docker-ce-cli-1:29.5.0-1.el9.x86_64 4/6
Verifying : docker-ce-rootless-extras-29.5.0-1.el9.x86_64 5/6
Verifying : docker-compose-plugin-5.1.3-1.el9.x86_64 6/6
Installed:
containerd.io-2.2.3-1.el9.x86_64 docker-buildx-plugin-0.34.0-1.el9.x86_64
docker-ce-3:29.5.0-1.el9.x86_64 docker-ce-cli-1:29.5.0-1.el9.x86_64
docker-ce-rootless-extras-29.5.0-1.el9.x86_64 docker-compose-plugin-5.1.3-1.el9.x86_64
Complete!
[root@docker ~]#
[root@docker ~]# systemctl enable --now docker Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service. [root@docker ~]# [root@docker ~]# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: disabled) Active: active (running) since Mon 2026-05-18 19:13:15 +08; 1min 41s ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 6030 (dockerd) Tasks: 8 Memory: 26.9M (peak: 28.5M) CPU: 149ms CGroup: /system.slice/docker.service └─6030 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock May 18 19:13:14 docker dockerd[6030]: time="2026-05-18T19:13:14.161197786+08:00" level=info msg="Firewalld: docker zone already exists, returning" May 18 19:13:15 docker dockerd[6030]: time="2026-05-18T19:13:15.046013096+08:00" level=info msg="Firewalld: interface docker0 already part of docker zone, returning" May 18 19:13:15 docker dockerd[6030]: time="2026-05-18T19:13:15.203289235+08:00" level=info msg="Loading containers: done." May 18 19:13:15 docker dockerd[6030]: time="2026-05-18T19:13:15.234346376+08:00" level=info msg="Docker daemon" commit=ff8d90a containerd-snapshotter=true storage-driver=overlayfs version=29.5.0 May 18 19:13:15 docker dockerd[6030]: time="2026-05-18T19:13:15.234587683+08:00" level=info msg="Initializing buildkit" May 18 19:13:15 docker dockerd[6030]: time="2026-05-18T19:13:15.249067842+08:00" level=warning msg="git source cannot be enabled: failed to find git binary: exec: \"git\": executable file not found in $PAT> May 18 19:13:15 docker dockerd[6030]: time="2026-05-18T19:13:15.253965138+08:00" level=info msg="Completed buildkit initialization" May 18 19:13:15 docker dockerd[6030]: time="2026-05-18T19:13:15.285213737+08:00" level=info msg="Daemon has completed initialization" May 18 19:13:15 docker dockerd[6030]: time="2026-05-18T19:13:15.285448300+08:00" level=info msg="API listen on /run/docker.sock" May 18 19:13:15 docker systemd[1]: Started Docker Application Container Engine.
[root@docker ~]# docker --version Docker version 29.5.0, build 98f1464 <---- [root@docker ~]# [root@docker ~]# docker version Client: Docker Engine - Community Version: 29.5.0 API version: 1.54 Go version: go1.26.3 Git commit: 98f1464 Built: Thu May 14 14:44:43 2026 OS/Arch: linux/amd64 Context: default Server: Docker Engine - Community Engine: Version: 29.5.0 API version: 1.54 (minimum version 1.40) Go version: go1.26.3 Git commit: ff8d90a Built: Thu May 14 14:40:49 2026 OS/Arch: linux/amd64 Experimental: false containerd: Version: v2.2.3 GitCommit: 77c84241c7cbdd9b4eca2591793e3d4f4317c590 runc: Version: 1.3.5 GitCommit: v1.3.5-0-g488fc13e docker-init: Version: 0.19.0 GitCommit: de40ad0 [root@docker ~]#
[root@docker ~]# which git /usr/bin/which: no git in (/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin) [root@docker ~]# [root@docker ~]# dnf install -y git Last metadata expiration check: 0:13:05 ago on Mon 18 May 2026 07:10:35 PM. Dependencies resolved. ============================================================================================================================ Package Architecture Version Repository Size ============================================================================================================================ Installing: git x86_64 2.47.3-1.el9_6 ol9_appstream 65 k Installing dependencies: git-core x86_64 2.47.3-1.el9_6 ol9_appstream 4.7 M git-core-doc noarch 2.47.3-1.el9_6 ol9_appstream 4.1 M perl-Error noarch 1:0.17029-7.el9 ol9_appstream 57 k perl-Git noarch 2.47.3-1.el9_6 ol9_appstream 42 k perl-TermReadKey x86_64 2.38-11.el9 ol9_appstream 42 k perl-lib x86_64 0.65-481.1.el9_6 ol9_appstream 13 k Transaction Summary ============================================================================================================================ Install 7 Packages Total download size: 9.0 M Installed size: 40 M Downloading Packages: (1/7): git-2.47.3-1.el9_6.x86_64.rpm 92 kB/s | 65 kB 00:00 (2/7): perl-Error-0.17029-7.el9.noarch.rpm 153 kB/s | 57 kB 00:00 (3/7): perl-Git-2.47.3-1.el9_6.noarch.rpm 313 kB/s | 42 kB 00:00 (4/7): perl-TermReadKey-2.38-11.el9.x86_64.rpm 61 kB/s | 42 kB 00:00 (5/7): perl-lib-0.65-481.1.el9_6.x86_64.rpm 30 kB/s | 13 kB 00:00 (6/7): git-core-doc-2.47.3-1.el9_6.noarch.rpm 666 kB/s | 4.1 MB 00:06 (7/7): git-core-2.47.3-1.el9_6.x86_64.rpm 694 kB/s | 4.7 MB 00:06 ---------------------------------------------------------------------------------------------------------------------------- Total 1.3 MB/s | 9.0 MB 00:06 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : git-core-2.47.3-1.el9_6.x86_64 1/7 Installing : git-core-doc-2.47.3-1.el9_6.noarch 2/7 Installing : perl-lib-0.65-481.1.el9_6.x86_64 3/7 Installing : perl-TermReadKey-2.38-11.el9.x86_64 4/7 Installing : perl-Error-1:0.17029-7.el9.noarch 5/7 Installing : perl-Git-2.47.3-1.el9_6.noarch 6/7 Installing : git-2.47.3-1.el9_6.x86_64 7/7 Running scriptlet: git-2.47.3-1.el9_6.x86_64 7/7 Verifying : git-2.47.3-1.el9_6.x86_64 1/7 Verifying : git-core-2.47.3-1.el9_6.x86_64 2/7 Verifying : git-core-doc-2.47.3-1.el9_6.noarch 3/7 Verifying : perl-Error-1:0.17029-7.el9.noarch 4/7 Verifying : perl-Git-2.47.3-1.el9_6.noarch 5/7 Verifying : perl-TermReadKey-2.38-11.el9.x86_64 6/7 Verifying : perl-lib-0.65-481.1.el9_6.x86_64 7/7 Installed: git-2.47.3-1.el9_6.x86_64 git-core-2.47.3-1.el9_6.x86_64 git-core-doc-2.47.3-1.el9_6.noarch perl-Error-1:0.17029-7.el9.noarch perl-Git-2.47.3-1.el9_6.noarch perl-TermReadKey-2.38-11.el9.x86_64 perl-lib-0.65-481.1.el9_6.x86_64 Complete! [root@docker ~]# [root@docker ~]# which git /usr/bin/git [root@docker ~]# [root@docker ~]# systemctl daemon-reload [root@docker ~]# [root@docker ~]# systemctl stop docker Warning: Stopping docker.service, but it can still be activated by: docker.socket [root@docker ~]# systemctl start docker [root@docker ~]# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: disabled) Active: active (running) since Mon 2026-05-18 19:27:10 +08; 5s ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 7927 (dockerd) Tasks: 8 Memory: 27.1M (peak: 28.8M) CPU: 271ms CGroup: /system.slice/docker.service └─7927 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock May 18 19:27:08 docker dockerd[7927]: time="2026-05-18T19:27:08.432562694+08:00" level=info msg="Deleting nftables IPv6 rules" error="exit status 1" output="Error: Could not process rule: No such file or d> May 18 19:27:08 docker dockerd[7927]: time="2026-05-18T19:27:08.444383098+08:00" level=info msg="Firewalld: docker zone already exists, returning" May 18 19:27:09 docker dockerd[7927]: time="2026-05-18T19:27:09.345324425+08:00" level=info msg="Firewalld: interface docker0 already part of docker zone, returning" May 18 19:27:10 docker dockerd[7927]: time="2026-05-18T19:27:10.114600205+08:00" level=info msg="Loading containers: done." May 18 19:27:10 docker dockerd[7927]: time="2026-05-18T19:27:10.151445320+08:00" level=info msg="Docker daemon" commit=ff8d90a containerd-snapshotter=true storage-driver=overlayfs version=29.5.0 May 18 19:27:10 docker dockerd[7927]: time="2026-05-18T19:27:10.151562887+08:00" level=info msg="Initializing buildkit" May 18 19:27:10 docker dockerd[7927]: time="2026-05-18T19:27:10.164600435+08:00" level=info msg="Completed buildkit initialization" May 18 19:27:10 docker dockerd[7927]: time="2026-05-18T19:27:10.200134739+08:00" level=info msg="Daemon has completed initialization" May 18 19:27:10 docker dockerd[7927]: time="2026-05-18T19:27:10.200457344+08:00" level=info msg="API listen on /run/docker.sock" May 18 19:27:10 docker systemd[1]: Started Docker Application Container Engine. [root@docker ~]#
[root@docker ~]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
4f55086f7dd0: Pull complete
d5e71e642bf5: Download complete
Digest: sha256:0e760fdfbc48ba8041e7c6db999bb40bfca508b4be580ac75d32c4e29d202ce1
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@docker ~]#
*** docker0 -- New network interface got created by docker install command. [root@docker ~]# ifconfig docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255 inet6 fe80::d444:c6ff:feae:e2ae prefixlen 64 scopeid 0x20 ether d6:44:c6:ae:e2:ae txqueuelen 0 (Ethernet) RX packets 1 bytes 28 (28.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 2 bytes 196 (196.0 B) TX errors 0 dropped 27 overruns 0 carrier 0 collisions 0 enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255 inet6 fe80::a00:27ff:fed7:7467 prefixlen 64 scopeid 0x20 ether 08:00:27:d7:74:67 txqueuelen 1000 (Ethernet) RX packets 257715 bytes 385215093 (367.3 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 75613 bytes 4620699 (4.4 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.2.30 netmask 255.255.255.0 broadcast 192.168.2.255 inet6 fe80::a00:27ff:fed1:8a6f prefixlen 64 scopeid 0x20 ether 08:00:27:d1:8a:6f txqueuelen 1000 (Ethernet) RX packets 1334 bytes 101199 (98.8 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1732 bytes 221010 (215.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1000 (Local Loopback) RX packets 113 bytes 10205 (9.9 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 113 bytes 10205 (9.9 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@docker ~]#
⚠ Caution: Your use of any information or materials on this website is entirely at your own risk. It is provided for educational purposes only. It has been tested internally, however, we do not guarantee that it will work for you. Ensure that you run it in your test environment before using.