虚拟机安装Docker详细教程
·
网址
RHEL | Docker Docs
https://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
完成以上就是拉取成功。
更多推荐

所有评论(0)