网址

RHEL | Docker Docshttps://docs.docker.com/engine/install/rhel/这里以rhel系统为例,别的系统也能够通过官网查看

删除旧版本

[root@localhost ~] sudo dnf remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine \
podman \
runc

安装Docker官方源

注意:如果按照了docker的官方源后面下载相关包就会用这个源,没有科学上网的情况下官方源在国内很不稳定,所以建议用国内镜像源

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

示例:
[root@ha01 ~]# sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use subscription-manager to register.

Adding repo from: https://download.docker.com/linux/rhel/docker-ce.repo


如果官网访问不了,也可以使用镜像源,比如阿里的和清华的等等

dnf config-manager - add-repo https: mirrors.aliyun.com/dockerce/linux/rhel/docker-ce.repo

# 编辑源文件,适配RHEL 9(阿里云源默认是CentOS,RHEL 9可直接用)
sed -i 's/$releasever/9/g' /etc/yum.repos.d/docker-ce.repo


安装docker相关组件

更换了仓库源的话可以先清理缓存,当然直接下也可以

# 清理旧缓存
dnf clean all

# 重建缓存(加载阿里云源的元数据)
dnf makecache
dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

验证docker是否安装成功

# 启动Docker服务
systemctl start docker

# 设置开机自启
systemctl enable docker

# 验证Docker版本
docker --version

# 验证Docker服务状态
systemctl status docker


输出示例:
[root@ha01 yum.repos.d]# systemctl start docker.service 
[root@ha01 yum.repos.d]# systemctl enable docker.service 
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
[root@ha01 yum.repos.d]# docker 
bak/            docker-ce.repo  local.repo      redhat.repo     
[root@ha01 yum.repos.d]# docker --version
Docker version 29.2.1, build a5c7197
[root@ha01 yum.repos.d]# 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-03-02 17:49:19 CST; 1min 9s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 16028 (dockerd)
      Tasks: 10
     Memory: 28.6M
        CPU: 170ms
     CGroup: /system.slice/docker.service
             └─16028 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Mar 02 17:49:19 ha01 dockerd[16028]: time="2026-03-02T17:49:19.260114582+08:00" level=info msg="Deleting nftables IPv4 rules" error="exit status 1"
Mar 02 17:49:19 ha01 dockerd[16028]: time="2026-03-02T17:49:19.275461007+08:00" level=info msg="Deleting nftables IPv6 rules" error="exit status 1"
Mar 02 17:49:19 ha01 dockerd[16028]: time="2026-03-02T17:49:19.442989297+08:00" level=info msg="Loading containers: done."
Mar 02 17:49:19 ha01 dockerd[16028]: time="2026-03-02T17:49:19.448635990+08:00" level=info msg="Docker daemon" commit=6bc6209 containerd-snapshotte>
Mar 02 17:49:19 ha01 dockerd[16028]: time="2026-03-02T17:49:19.448686614+08:00" level=info msg="Initializing buildkit"
Mar 02 17:49:19 ha01 dockerd[16028]: time="2026-03-02T17:49:19.451770706+08:00" level=warning msg="git source cannot be enabled: failed to find git>
Mar 02 17:49:19 ha01 dockerd[16028]: time="2026-03-02T17:49:19.454569636+08:00" level=info msg="Completed buildkit initialization"
Mar 02 17:49:19 ha01 dockerd[16028]: time="2026-03-02T17:49:19.456955789+08:00" level=info msg="Daemon has completed initialization"
Mar 02 17:49:19 ha01 dockerd[16028]: time="2026-03-02T17:49:19.457190141+08:00" level=info msg="API listen on /run/docker.sock"
Mar 02 17:49:19 ha01 systemd[1]: Started Docker Application Container Engine.
[root@ha01 yum.repos.d]# docker images
                                                                                                                                i Info →   U  In Use
IMAGE   ID             DISK USAGE   CONTENT SIZE   EXTRA

到这docker就安装好了,接下来可以尝试拉去一个nginx的镜像

配置镜像加速

# 用cat命令直接写入配置(无需vim手动编辑,避免格式错误)
cat > /etc/docker/daemon.json << 'EOF'
{
  "default-ipc-mode": "shareable",
  "data-root": "/data/docker",
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "50"
  },
  "registry-mirrors": [
    "https://d8jozvml.mirror.aliyuncs.com",
    "https://docker.1ms.run",
    "https://func.ink",
    "https://proxy.1panel.live",
    "https://docker-0.unsee.tech",
    "https://docker.zhai.cm",
    "https://a.ussh.net",
    "https://docker.melikeme.cn",
    "https://lispy.org",
    "https://docker.hlmirror.com",
    "https://docker.xiaogenban1993.com",
    "https://docker.1panel.top",
    "https://docker.kejilion.pro",
    "https://dockerpull.cn",
    "https://docker.xuanyuan.me",
    "https://docker.anye.in",
    "https://hub.fast360.xyz"
  ]
}
EOF

第一行是我的阿里云个人加速链接,注册后免费获得

https://cr.console.aliyun.com/cn-hangzhou/instances/mirror

重启docker服务

sudo systemctl daemon-reload
sudo systemctl restart docker

打开nginx官网查看要有什么版本

也可以搜索有什么版本

接下来拉去这个1.28.2版本

语法:

docker pull NAME[:TAG]
[root@ha01 yum.repos.d]# docker pull nginx:1.28.2
1.28.2: Pulling from library/nginx
0b72541a9d83: Pull complete 
162cde6b9a43: Pull complete 
f707f07b5e3f: Pull complete 
d3fcc2d4060f: Pull complete 
206356c42440: Pull complete 
bd2c1dd7cfa8: Pull complete 
8a5dc9e7f5cb: Pull complete 
2a16f37ebc8b: Download complete 
5e7d68635279: Download complete 
Digest: sha256:810ad1346ec7fd3d0a246c178f2b82e73a43640c691774405adfd38a751ecce8
Status: Downloaded newer image for nginx:1.28.2
docker.io/library/nginx:1.28.2
[root@ha01 yum.repos.d]# docker images
                                                                                                                                i Info →   U  In Use
IMAGE          ID             DISK USAGE   CONTENT SIZE   EXTRA
nginx:1.28.2   810ad1346ec7        237MB         65.8MB 

完成以上就是拉取成功。

更多推荐