CentOS 7 环境下一键部署 Docker 引擎的完整指南(含镜像加速配置)

🧾 文章摘要
本文介绍了如何在 CentOS 7 操作系统上完成 Docker 引擎的一键安装与配置,包括:
关闭防火墙与 SELinux;
替换阿里云 YUM 源;
安装最新版 Docker CE;
配置国内镜像加速器;
设置开机自启等关键步骤。
适用于初学者、运维人员及 DevOps 工程师快速搭建 Docker 运行环境。

 一、适用对象
本文适合以下读者:
刚接触 Linux 服务器管理的新手;
需要快速部署 Docker 环境的开发或测试人员;
希望优化镜像拉取速度的用户;
对自动化部署脚本感兴趣的读者。

🛠️ 二、部署流程详解
1. 关闭防火墙并禁用 SELinux

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's|SELINUX=enforcing|SELINUX=disabled|g' /etc/selinux/config

2. 备份原 YUM 源并替换为阿里云源

cp -rf /etc/yum.repos.d /etc/yum.repos.d.bak
rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all && yum makecache

3. 安装常用工具包

yum -y install bash* wget vim lsof unzip dos2unix net-tools
yum -y install yum-utils device-mapper-persistent-data lvm2

4. 添加 Docker CE 官方源并安装

# 添加docker-ce的yum源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 卸载旧版本
yum -y remove docker docker-ce docker-ce-cli containerd.io docker.io containerd runc docker-client docker-latest docker-client-latest docker-selinux docker-common docker-engine docker-logrotate docker-latest-logrotate docker-compose-plugin
# 安装最新版本
yum -y install docker-ce docker-ce-cli containerd.io
# 查看当前版本
docker -v

当你尝试使用 yum 或 dnf 安装 RPM 包时,系统检测到该 RPM 包由 GPG 签名签名,但当前系统中未安装对应的 GPG 公钥,因此无法验证包的完整性与来源。

docker-buildx-plugin-0.14.1-1.el7.x86_64.rpm 的公钥尚未安装

✅ 解决方法
🔧 导入 Docker 的官方 GPG 公钥(推荐)
下载并导入 Docker 的官方 GPG 公钥:

# 安装最新版本
yum -y install docker-ce docker-ce-cli containerd.io
# 查看当前版本
docker -v

 再执行一遍

 sudo rpm --import https://download.docker.com/linux/centos/gpg

启动 Docker 并设置开机自启

# 启动并配置开机自启
systemctl start docker
systemctl enable docker

6. 配置国内镜像加速器(推荐)

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors" : ["https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc",
"https://do.nark.eu.org",
"https://dc.j8.work",
"https://dockerproxy.com",
"https://gst6rzl9.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"http://mirrors.ustc.edu.cn/",
"https://mirrors.tuna.tsinghua.edu.cn/",
"http://mirrors.sohu.com/" 
],
 "insecure-registries" : [
    "registry.docker-cn.com",
    "docker.mirrors.ustc.edu.cn"
    ],
"debug": true,
"experimental": false
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

7. 重启 Docker 服务以应用配置

sudo systemctl daemon-reload
sudo systemctl restart docker

 三、验证是否配置成功

docker info | grep Mirrors -A 2

输出示例如下表示配置成功

 Registry Mirrors:
  https://docker.m.daocloud.io/

🧪 四、常见问题解答(FAQ)
Q1:输入 docker search xxx指令的时候,出现了连接超时的情况,但是拉取命令没问题 docker pull xx可以成功。

Error response from daemon: Get "https://index.docker.io/v1/search?q=nacos&n=25": dial tcp 154.83.14.134:443: i/o timeout

原因由于命令行中 docker search 不支持镜像加速器,Docker 的 search 和 login 等操作默认直接访问 Docker Hub(index.docker.io),不经过镜像加速器。

方法1:使用浏览器访问 Docker Hub 搜索镜像(推荐)

方法2:使用第三方工具替代搜索功能
你可以安装并使用 skopeo 或 regclient 工具,它们支持更灵活的 registry 操作,并可通过代理访问。

方法3:禁用或忽略 docker search
如果你只是想确认某个镜像是否存在或获取 tag 列表,可以直接使用 docker pull 拉取已知 tag,或者通过浏览器访问对应的项目页面。

Q2: 配置镜像加速后仍然无法拉取镜像怎么办?
检查 /etc/docker/daemon.json 格式是否正确;
尝试更换其他可用的镜像地址;
查看日志:journalctl -u docker.service;
确保没有重复配置 registry-mirror(如在 /etc/default/docker 或 /etc/sysconfig/docker 中)。

📦 五、结语
通过上述步骤,你可以轻松完成 CentOS 7 上 Docker 引擎的安装与配置。整个过程只需复制粘贴即可完成,非常适合用于生产环境的快速部署或 CI/CD 流水线中的初始化脚本。
如果你希望将该脚本封装为 .sh 脚本文件用于批量部署,也可以进一步封装成 Ansible Playbook 或 SaltStack 模块。
 
📚 六、推荐阅读
Docker 官方文档
Linux 下 Docker 安装与配置最佳实践
 
📢 七、互动环节
如果你有更高效的部署方式,或者发现某些镜像源已失效,请在评论区留言,我会持续更新此指南!
 
⭐️ 八、标签推荐
#Docker #CentOS #DevOps #镜像加速 #Linux运维 #一键部署
 
📝 创作背景:本文由作者在实际项目中总结整理而成,旨在帮助更多开发者快速搭建 Docker 环境,提升部署效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值