在CentOS9上安装Docker的完整指南

 更新时间:2025年10月13日 10:23:13   作者:Lin_Aries_0421  
这篇文章主要为大家详细介绍了在CentOS9上安装Docker的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以了解下

1.准备安装环境

(1)禁用防火墙与SELinux

[root@localhost ~]# systemctl disable --now firewalld.service 
Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service".
Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".
[root@localhost ~]# sudo setenforce 0

(2)更改主机名

[root@localhost ~]# hostnamectl set-hostname host1
[root@localhost ~]# bash

2. 永久配置 DNS

CentOS Stream 9 默认用NetworkManager管理网络,需通过其工具永久配置 DNS:

[root@host1 ~]# nmcli connection show
NAME    UUID                                  TYPE      DEVICE 
ens160  19689312-b1bb-3a43-8c2d-d316680ab4a5  ethernet  ens160 
lo      86df2843-123d-41cc-b6ac-1cf41ce141e8  loopback  lo 

假设连接名称为ens160,执行以下命令配置 DNS:

[root@host1 ~]# nmcli connection modify ens160 ipv4.dns "8.8.8.8,114.114.114.114"
[root@host1 ~]# nmcli connection up ens160

验证 DNS 是否生效:

# 查看当前生效的DNS
[root@host1 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 114.114.114.114
# 再次测试域名解析
[root@host1 ~]# nslookup mirrors.centos.org
Server:8.8.8.8
Address:8.8.8.8#53

Non-authoritative answer:
mirrors.centos.orgcanonical name = mirrors.fedoraproject.org.
mirrors.fedoraproject.orgcanonical name = wildcard.fedoraproject.org.
Name:wildcard.fedoraproject.org
Address: 38.145.32.21
Name:wildcard.fedoraproject.org
Address: 152.2.23.103
Name:wildcard.fedoraproject.org
Address: 140.211.169.196
Name:wildcard.fedoraproject.org
Address: 8.43.85.67
Name:wildcard.fedoraproject.org
Address: 34.211.44.206
Name:wildcard.fedoraproject.org
Address: 8.43.85.73
Name:wildcard.fedoraproject.org
Address: 152.2.23.104
Name:wildcard.fedoraproject.org
Address: 67.219.144.68
Name:wildcard.fedoraproject.org
Address: 38.145.32.20
Name:wildcard.fedoraproject.org
Address: 2620:52:6:1121:bead:cafe:feed:fed5
Name:wildcard.fedoraproject.org
Address: 2606:f640:6000:651::7
Name:wildcard.fedoraproject.org
Address: 2606:f640:6000:651::8
Name:wildcard.fedoraproject.org
Address: 2620:52:3:1:dead:beef:cafe:fed6
Name:wildcard.fedoraproject.org
Address: 2605:bc80:3010:600:dead:beef:cafe:fed9
Name:wildcard.fedoraproject.org
Address: 2600:1f14:fad:5c02:5270:306c:35d6:1f81
Name:wildcard.fedoraproject.org
Address: 2620:52:3:1:dead:beef:cafe:fed7
Name:wildcard.fedoraproject.org
Address: 2604:1580:fe00:0:dead:beef:cafe:fed1
Name:wildcard.fedoraproject.org
Address: 2620:52:6:1121:bead:cafe:feed:fed6

3.更换国内镜像源(如阿里云)

(1)备份原有仓库配置

mkdir -p /etc/yum.repos.d/backup
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/

(2)下载阿里云的 CentOS Stream 9 仓库配置

# 下载BaseOS仓库配置
curl -o /etc/yum.repos.d/CentOS-Stream-BaseOS.repo https://mirrors.aliyun.com/repo/Centos-stream-9.repo

(3)清理缓存并重建

yum clean all
yum makecache  # 生成新的缓存

4. 设置仓库

(1)安装 yum-utils 包

[root@host1 ~]# dnf makecache
CentOS Stream 9 - BaseOS (Aliyun)                                    3.0 MB/s | 8.8 MB     00:02    
CentOS Stream 9 - AppStream (Aliyun)                                 3.8 MB/s |  25 MB     00:06    
上次元数据过期检查:0:00:03 前,执行于 2025年09月05日 星期五 16时25分24秒。
元数据缓存已建立。
[root@host1 ~]# dnf install -y yum-utils
上次元数据过期检查:0:00:02 前,执行于 2025年09月05日 星期五 16时26分45秒。
依赖关系解决。
=====================================================================================================
 软件包                  架构                 版本                        仓库                  大小
=====================================================================================================
安装:
 yum-utils               noarch               4.3.0-22.el9                baseos                39 k

事务概要
=====================================================================================================
安装  1 软件包

总下载:39 k
安装大小:23 k
下载软件包:
yum-utils-4.3.0-22.el9.noarch.rpm                                    113 kB/s |  39 kB     00:00    
-----------------------------------------------------------------------------------------------------
总计                                                                 111 kB/s |  39 kB     00:00     
CentOS Stream 9 - BaseOS (Aliyun)                                    3.1 kB/s | 1.6 kB     00:00    
导入 GPG 公钥 0x8483C65D:
 Userid: "CentOS (CentOS Official Signing Key) <security@centos.org>"
 指纹: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D
 来自: https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
导入公钥成功
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
  准备中  :                                                                                      1/1 
  安装    : yum-utils-4.3.0-22.el9.noarch                                                        1/1 
  运行脚本: yum-utils-4.3.0-22.el9.noarch                                                        1/1 
  验证    : yum-utils-4.3.0-22.el9.noarch                                                        1/1 

已安装:
  yum-utils-4.3.0-22.el9.noarch                                                                      

完毕!

(2)添加仓库

[root@host1 ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
添加仓库自:https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

5. 安装 Docker Engine

[root@host1 ~]# yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
上次元数据过期检查:0:01:31 前,执行于 2025年09月05日 星期五 16时47分16秒。
依赖关系解决。
=====================================================================================================
 软件包                           架构          版本                   仓库                     大小
=====================================================================================================
安装:
 containerd.io                    x86_64        1.7.27-3.1.el9         docker-ce-stable         44 M
 docker-buildx-plugin             x86_64        0.27.0-1.el9           docker-ce-stable         17 M
 docker-ce                        x86_64        3:28.4.0-1.el9         docker-ce-stable         21 M
 docker-ce-cli                    x86_64        1:28.4.0-1.el9         docker-ce-stable        8.6 M
 docker-compose-plugin            x86_64        2.39.2-1.el9           docker-ce-stable         15 M
安装弱的依赖:
 docker-ce-rootless-extras        x86_64        28.4.0-1.el9           docker-ce-stable        3.4 M

事务概要
=====================================================================================================
安装  6 软件包

总下载:108 M
安装大小:435 M
确定吗?[y/N]: y
下载软件包:
(1/6): docker-buildx-plugin-0.27.0-1.el9.x86_64.rpm                  2.4 MB/s |  17 MB     00:06    
(2/6): docker-ce-28.4.0-1.el9.x86_64.rpm                             2.8 MB/s |  21 MB     00:07    
(3/6): docker-ce-rootless-extras-28.4.0-1.el9.x86_64.rpm             2.4 MB/s | 3.4 MB     00:01    
(4/6): docker-ce-cli-28.4.0-1.el9.x86_64.rpm                         2.7 MB/s | 8.6 MB     00:03    
(5/6): docker-compose-plugin-2.39.2-1.el9.x86_64.rpm                 3.7 MB/s |  15 MB     00:04    
(6/6): containerd.io-1.7.27-3.1.el9.x86_64.rpm                       3.2 MB/s |  44 MB     00:13    
-----------------------------------------------------------------------------------------------------
总计                                                                 7.8 MB/s | 108 MB     00:13     
Docker CE Stable - x86_64                                            5.6 kB/s | 1.6 kB     00:00    
导入 GPG 公钥 0x621E9F35:
 Userid: "Docker Release (CE rpm) <docker@docker.com>"
 指纹: 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
 来自: https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
确定吗?[y/N]: y
导入公钥成功
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
  准备中  :                                                                                      1/1 
  安装    : docker-buildx-plugin-0.27.0-1.el9.x86_64                                             1/6 
  运行脚本: docker-buildx-plugin-0.27.0-1.el9.x86_64                                             1/6 
  安装    : docker-compose-plugin-2.39.2-1.el9.x86_64                                            2/6 
  运行脚本: docker-compose-plugin-2.39.2-1.el9.x86_64                                            2/6 
  安装    : docker-ce-cli-1:28.4.0-1.el9.x86_64                                                  3/6 
  运行脚本: docker-ce-cli-1:28.4.0-1.el9.x86_64                                                  3/6 
  安装    : containerd.io-1.7.27-3.1.el9.x86_64                                                  4/6 
  运行脚本: containerd.io-1.7.27-3.1.el9.x86_64                                                  4/6 
  安装    : docker-ce-rootless-extras-28.4.0-1.el9.x86_64                                        5/6 
  运行脚本: docker-ce-rootless-extras-28.4.0-1.el9.x86_64                                        5/6 
  安装    : docker-ce-3:28.4.0-1.el9.x86_64                                                      6/6 
  运行脚本: docker-ce-3:28.4.0-1.el9.x86_64                                                      6/6 
  验证    : containerd.io-1.7.27-3.1.el9.x86_64                                                  1/6 
  验证    : docker-buildx-plugin-0.27.0-1.el9.x86_64                                             2/6 
  验证    : docker-ce-3:28.4.0-1.el9.x86_64                                                      3/6 
  验证    : docker-ce-cli-1:28.4.0-1.el9.x86_64                                                  4/6 
  验证    : docker-ce-rootless-extras-28.4.0-1.el9.x86_64                                        5/6 
  验证    : docker-compose-plugin-2.39.2-1.el9.x86_64                                            6/6 

已安装:
  containerd.io-1.7.27-3.1.el9.x86_64                 docker-buildx-plugin-0.27.0-1.el9.x86_64       
  docker-ce-3:28.4.0-1.el9.x86_64                     docker-ce-cli-1:28.4.0-1.el9.x86_64            
  docker-ce-rootless-extras-28.4.0-1.el9.x86_64       docker-compose-plugin-2.39.2-1.el9.x86_64      

完毕!

查看版本:

[root@host1 ~]# docker --version 
Docker version 28.4.0, build d8eb465

列出所有版本

[root@host1 ~]# yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64               3:28.4.0-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:28.4.0-1.el9                  @docker-ce-stable
docker-ce.x86_64               3:28.3.3-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:28.3.2-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:28.3.1-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:28.3.0-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:28.2.2-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:28.2.1-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:28.2.0-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:28.1.1-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:28.1.0-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:28.0.4-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:28.0.3-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:28.0.2-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:28.0.1-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:28.0.0-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:27.5.1-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:27.5.0-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:27.4.1-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:27.4.0-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:27.3.1-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:27.3.0-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:27.2.1-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:27.2.0-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:27.1.2-1.el9                  docker-ce-stable 
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 
docker-ce.x86_64               3:27.0.3-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:27.0.2-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:27.0.1-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:26.1.4-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:26.1.3-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:26.1.2-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:26.1.1-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:26.1.0-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:26.0.2-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:26.0.1-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:26.0.0-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:25.0.5-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:25.0.4-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:25.0.3-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:25.0.2-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:25.0.1-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:25.0.0-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:24.0.9-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:24.0.8-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:24.0.7-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:24.0.6-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:24.0.5-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:24.0.4-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:24.0.3-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:24.0.2-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:24.0.1-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:24.0.0-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:23.0.6-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:23.0.5-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:23.0.4-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:23.0.2-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:23.0.1-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:23.0.0-1.el9                  docker-ce-stable 
docker-ce.x86_64               3:20.10.24-3.el9                docker-ce-stable 
docker-ce.x86_64               3:20.10.23-3.el9                docker-ce-stable 
docker-ce.x86_64               3:20.10.22-3.el9                docker-ce-stable 
docker-ce.x86_64               3:20.10.21-3.el9                docker-ce-stable 
docker-ce.x86_64               3:20.10.20-3.el9                docker-ce-stable 
docker-ce.x86_64               3:20.10.19-3.el9                docker-ce-stable 
docker-ce.x86_64               3:20.10.18-3.el9                docker-ce-stable 
docker-ce.x86_64               3:20.10.17-3.el9                docker-ce-stable 
docker-ce.x86_64               3:20.10.16-3.el9                docker-ce-stable 
docker-ce.x86_64               3:20.10.15-3.el9                docker-ce-stable 
已安装的软件包
上次元数据过期检查:0:05:43 前,执行于 2025年09月05日 星期五 16时47分16秒。
可安装的软件包

选择版本安装

yum install docker-ce-版本号 #后面一样操作

6. 启动并测试

[root@host1 ~]# systemctl start docker
[root@host1 ~]# docker run hello-world    #运行 hello-world  镜像验证
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded

Run 'docker run --help' for more information

报错修改:

(1)检查网络后发现自己的阿里镜像加速器用不了了,现在换成华为镜像加速器

[root@host1 ~]# vi /etc/docker/daemon.json
[root@host1 ~]# cat /etc/docker/daemon.json
{
  "registry-mirrors": ["https://9fbd5949cbc94e4a9581e33b9077c811.mirror.swr.myhuaweicloud.com"]
}

(2)重启 Docker 生效

[root@host1 ~]# sudo systemctl daemon-reload
[root@host1 ~]# sudo systemctl restart docker

(3)验证 Docker 是否完全正常工作:

[root@host1 ~]# docker pull hello-world     #可以不用这步操作
Using default tag: latest
latest: Pulling from library/hello-world
17eec7bbc9d7: Pull complete 
Digest: sha256:a0dfb02aac212703bfcb339d77d47ec32c8706ff250850ecc0e19c8737b18567
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest
[root@host1 ~]# docker run hello-world

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/

太棒了!从输出结果可以确认,Docker 已经完全正常工作了!

“Hello from Docker!” 的欢迎信息表明:

  • Docker 客户端与守护进程(daemon)通信正常;
  • 镜像加速器配置生效,成功拉取了 hello-world 镜像;
  • 容器能够正常创建、运行并输出内容。

7. 镜像加速配置操作示例(阿里镜像加速配置)

(1)创建配置文件

sudo mkdir -p /etc/docker

(2)写入阿里云加速配置

tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://jnh8ca4k.mirror.aliyuncs.com"]
}
EOF

(3)重启服务生效

sudo systemctl daemon-reload
sudo systemctl restart docker

8.配置 Docker 开机自动启动

[root@host1 ~]# sudo systemctl enable docker.service
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
[root@host1 ~]# sudo systemctl enable containerd.service
Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /usr/lib/systemd/system/containerd.service.

关键注意事项

生产环境操作前建议创建系统快照

避免直接使用sudo rm -rf清理目录(除非确认无重要数据)

定期执行dnf update保持组件更新

以上就是在CentOS9上安装Docker的完整指南的详细内容,更多关于CentOS9安装Docker的资料请关注脚本之家其它相关文章!

相关文章

  • 部署k8s和docker、jenkins的区别和联系详析

    部署k8s和docker、jenkins的区别和联系详析

    Jenkins、Docker与Kubernetes是现代软件开发和运维中不可或缺的核心工具,它们分别承担不同层次的关键角色,这篇文章主要介绍了部署k8s和docker、jenkins的区别和联系的相关资料,需要的朋友可以参考下
    2025-11-11
  • Docker与Jenkins实现RuoYi-Vue前后端分离项目的CICD全流程自动化

    Docker与Jenkins实现RuoYi-Vue前后端分离项目的CICD全流程自动化

    在现代软件开发流程中,持续集成/持续部署(CICD)已经成为提升开发效率、保障代码质量的关键实践,本文将详细介绍如何利用Docker容器化技术结合Jenkins,搭建一套完整的CICD流程,实现RuoYi-Vue前后端分离项目的自动化构建、测试和部署,从代码提交到自动部署的全流程自动化
    2026-01-01
  • 三台机器使用Docker部署Redis集群方式

    三台机器使用Docker部署Redis集群方式

    这篇文章主要介绍了三台机器使用Docker部署Redis集群方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • 使用jib打包docker镜像实战

    使用jib打包docker镜像实战

    这篇文章主要介绍了使用jib打包docker镜像实战,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Docker如何部署您的第一个应用程序

    Docker如何部署您的第一个应用程序

    这篇文章主要介绍了Docker如何部署您的第一个应用程序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • docker中镜像映射和端口映射的实现步骤

    docker中镜像映射和端口映射的实现步骤

    本文介绍了在Docker中进行镜像映射和端口映射,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-11-11
  • docker-compose安装redis的方法步骤

    docker-compose安装redis的方法步骤

    本文主要介绍了docker-compose安装redis的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-09-09
  • Docker 部署Go的两种基础镜像的实现

    Docker 部署Go的两种基础镜像的实现

    这篇文章主要介绍了Docker 部署Go的两种基础镜像的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • docker容器分配固定ip的实现示例

    docker容器分配固定ip的实现示例

    如果不固定ip,每次主机重启后,docker会动态给容器分配ip,导致redis容器的IP自动换了 ,然后还得去改配置就很烦,本文主要介绍了docker容器分配固定ip的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • 镜像仓库 Harbor搭建和使用教程

    镜像仓库 Harbor搭建和使用教程

    本文给大家介绍镜像仓库 Harbor搭建和使用教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2022-01-01

最新评论