Install Docker Engine on Oracle Linux 9


Table of Contents


1. Environment

OSOracle  Linux 9

2. Update Server

[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 ~]#

3. Install Required Packages

[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 ~]#

4. Add Docker Repository

[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 ~]#

5. Install Docker Engine

[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 ~]#

6. Start and Enable Docker Service

[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.

7. Verify Docker Installation

[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 ~]#

8. Install GIT

[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 ~]#

9. Test 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 ~]#

10. Verify Docker Network Interface

*** 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.

Thank you,

Rajasekhar Amudala

Email: br8dba@gmail.com

WhatsApp: +

LinkedIn: https://www.linkedin.com/in/rajasekhar-amudala/