)
CentOS 7 下 Docker 安装完整指南含阿里云源 镜像加速照着这篇做你的CentOS 7服务器也能用上Docker。全是实测命令直接复制执行就行。一、为啥要在CentOS 7上装Docker作为一个还在用CentOS 7的开发者你可能经常遇到这些问题开发环境跑得好好的一到服务器就报各种依赖缺失部署一个新项目要在服务器上装JDK、MySQL、Redis装完还担心版本冲突迁移项目时环境配置都得重来一遍。Docker的出现就是为了解决这些问题。它能把你的应用、依赖、配置全部打包成一个容器换到任何支持Docker的机器上都能一键运行。注意CentOS 7已于2024年6月30日停止维护EOL但Docker依然可以在上面运行适合学习和非生产环境使用。二、安装前准备2.1 检查系统版本和内核Docker要求CentOS 7为64位系统内核版本不低于3.10。# 查看系统版本cat/etc/os-release# 查看内核版本uname-r正常输出应类似3.10.0-xxx.el7.x86_64。CentOS 7默认满足最低内核要求。2.2 卸载旧版本Docker如有如果系统里之前装过旧版Docker先卸载干净避免冲突。sudoyum removedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-logrotate\docker-engine\docker-selinux如果提示“未找到软件包”说明之前没装过直接往下走就行。三、配置国内YUM源关键步骤CentOS 7官方源已经停服直接使用原版源会导致yum makecache报404所以必须先替换为国内镜像源。3.1 备份原有YUM源配置sudomv/etc/yum.repos.d /etc/yum.repos.d.baksudomkdir/etc/yum.repos.d3.2 下载阿里云CentOS 7基础源sudocurl-o/etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo3.3 可选添加EPEL扩展源EPEL源包含很多额外的软件包建议一起装上。sudoyuminstall-yepel-release3.4 清理并重建YUM缓存sudoyum clean allsudoyum makecache四、安装Docker4.1 安装依赖包sudoyuminstall-yyum-utils device-mapper-persistent-data lvm24.2 添加Docker CE国内仓库Docker官方仓库在国内下载很慢建议使用阿里云的Docker CE仓库。sudoyum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo4.3 安装指定版本的Docker注意最新版Docker可能与CentOS 7不兼容推荐安装20.10.x或24.0.x版本。# 推荐安装24.0.7sudoyuminstall-ydocker-ce-24.0.7-1.el7 docker-ce-cli-24.0.7-1.el7 containerd.io如果想装20.10.9把命令中的版本号替换成docker-ce-20.10.9-3.el7就行。五、启动并验证Docker5.1 启动Docker服务并设置开机自启# 启动Dockersudosystemctl startdocker# 设置开机自启sudosystemctlenabledocker# 查看运行状态sudosystemctl statusdocker如果看到active (running)说明Docker启动成功。5.2 运行hello-world验证sudodockerrun hello-world如果输出Hello from Docker!说明安装成功。六、配置国内镜像加速强烈推荐在国内拉取Docker Hub上的官方镜像非常慢经常超时。配置镜像加速器可以大幅提升拉取速度。6.1 创建或编辑daemon.json配置文件sudomkdir-p/etc/dockersudotee/etc/docker/daemon.json-EOF { registry-mirrors: [ https://docker.m.daocloud.io, https://docker.nju.edu.cn, https://mirror.iscas.ac.cn ] } EOF6.2 重启Docker使配置生效sudosystemctl daemon-reloadsudosystemctl restartdocker6.3 验证加速是否生效dockerinfo|grep-A5Registry Mirrors如果能看到刚才配置的镜像地址说明配置成功。七、可选免sudo使用Docker默认只有root用户和docker组的成员才能执行docker命令。把当前用户加入docker组就可以免sudo了。# 添加docker组如果不存在sudogroupadddocker# 将当前用户加入docker组sudousermod-aGdocker$USER然后重新登录服务器或执行以下命令使配置立即生效newgrpdocker之后就可以直接运行docker run hello-world不用再加sudo了。八、Docker常用命令速查命令作用docker ps列出正在运行的容器docker ps -a列出所有容器含已停止docker images列出本地镜像docker pull 镜像名:版本拉取镜像docker run -d 镜像名创建并后台运行容器docker stop 容器ID/名称停止运行中的容器docker rm 容器ID/名称删除已停止的容器docker rmi 镜像ID/名称删除本地镜像docker logs 容器ID/名称查看容器运行日志docker exec -it 容器ID bash进入容器内部九、常见问题排查1. yum makecache报404错误原因CentOS 7官方源已停服。解决按“第三节”步骤先将YUM源替换为阿里云源。2. docker run hello-world时报连接超时原因Docker Hub被墙拉取镜像慢。解决按“第六节”步骤配置国内镜像加速。3. 启动Docker时提示“error initializing graphdriver: overlay2”原因XFS文件系统没有启用d_type支持。解决修改/etc/docker/daemon.json添加以下配置{storage-driver:overlay2,storage-opts:[overlay2.override_kernel_checktrue]}然后重启Docker。4. 普通用户执行docker命令提示Permission denied原因当前用户不在docker组。解决执行“第七节”的步骤将用户加入docker组后重新登录。5. 安装docker-compose-plugin失败原因阿里云镜像中可能缺少特定版本的docker-compose-plugin。解决手动下载安装wgethttps://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-compose-plugin-2.27.1-1.el7.x86_64.rpmrpm-ivhdocker-compose-plugin-2.27.1-1.el7.x86_64.rpm十、总结至此你已经成功在CentOS 7上完成了Docker的安装、启动、镜像加速配置和用户权限设置。总结一下核心步骤替换系统YUM源为阿里云源安装Docker CE推荐24.0.7或20.10.9版本启动Docker并设置开机自启配置国内镜像加速解决拉取慢问题把当前用户加入docker组免sudo全部完成后就可以开始用Docker拉取镜像、运行容器了。祝你一次安装成功