当前位置: 首页 > web >正文

CentOS 7 安装指定版本 Docker 及镜像加速/配置优化攻略

在这里插入图片描述

摘要
本文详述 CentOS 7 系统下安装指定版本 Docker ,涵盖镜像加速配置(实测最快)、存储位置优化、日志轮转等核心配置。



一、安装指定版本Docker

1.1 卸载旧版本(如有)

sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

1.2 安装依赖包

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

1.3 添加Docker仓库(推荐阿里云镜像源)

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.4 查看可用版本

yum list docker-ce --showduplicates | sort -r

输出示例

docker-ce.x86_64  3:20.10.21-3.el7                    docker-ce-stable
docker-ce.x86_64  3:20.10.20-3.el7                    docker-ce-stable

1.5 安装指定版本

示例:安装20.10.20版本

sudo yum install -y docker-ce-20.10.20 docker-ce-cli-20.10.20 containerd.io

二、镜像加速配置

2.1 镜像加速及配置优化

优化说明

  • 配置镜像加速地址,经实测速度很快,一个足够
  • 修改日志格式,并限制单个日志大小为20m,最多3个
  • 修改默认存储位置,避免占用根目录空间
  • 根据实际情况调整配置
sudo mkdir -p /etc/docker/
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://docker.m.daocloud.io"],"log-driver": "json-file","log-opts": {"max-size": "20m","max-file": "3"},"data-root": "/data/docker"
}
EOF

2.2 启动

systemctl daemon-reload && systemctl restart docker && systemctl status docker

2.3 验证版本

docker --version

预期输出

Docker version 20.10.20, build 99e3ed8919

2.4 验证镜像加速

docker info | grep "Registry Mirrors"

预期输出

Registry Mirrors:

三、配置优化建议

3.1 存储驱动优化

# 确认当前存储驱动(默认应为overlay2)
docker info | grep "Storage Driver"# 如需强制指定(通常无需手动配置)
sudo tee /etc/docker/daemon.json <<-'EOF'
{"storage-driver": "overlay2"
}
EOF
sudo systemctl restart docker

3.2 资源限制配置

3.2.1 容器级资源限制
docker run -d \--name my_container \--cpus="1.5" \--memory="512m" \--memory-swap="1g" \nginx:latest
3.2.2 全局默认限制(daemon.json)
sudo tee /etc/docker/daemon.json <<-'EOF'
{"default-ulimits": {"nofile": {"Name": "nofile","Hard": 65535,"Soft": 65535}}
}
EOF
sudo systemctl restart docker

3.3 网络性能优化

# 修改sysctl参数(需root权限)
sudo tee /etc/sysctl.d/docker.conf <<-'EOF'
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.ip_local_port_range = 1024 65535
EOF
sudo sysctl -p /etc/sysctl.d/docker.conf

四、维护建议

4.1 定期清理

# 清理无用资源
docker system prune -a --volumes# 手动清理特定镜像
docker rmi $(docker images --filter "dangling=true" -q)

4.2 升级策略

# 查看可升级版本
yum list docker-ce --showduplicates | grep 20.10# 升级操作
sudo yum update docker-ce docker-ce-cli containerd.io

五、常见问题

Q1:安装旧版本时提示依赖缺失
A:需先安装对应版本的依赖包,例如:

# 示例:安装17.03.3版本所需依赖
sudo yum install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.3.ce-1.el7.noarch.rpm

Q2:镜像加速未生效
A:检查步骤:

  1. 确认daemon.json语法正确
  2. 执行systemctl restart docker后等待1-2分钟
  3. 使用docker info验证配置
  4. 测试拉取镜像速度:time docker pull ubuntu:latest
  5. 终结方案,删除原有数据/data/docker/,重启启动新的docker

Q3:容器启动报"No space left on device"
A:执行以下清理操作:

# 清理graphdriver残留
docker system prune -a --volumes# 清理overlay2存储(谨慎操作)
rm -rf /data/docker/overlay2/*
systemctl restart docker

六、结语

通过以上配置,你可以在CentOS 7系统上获得一个高效稳定的Docker运行环境。建议根据实际业务需求调整参数,并定期关注Docker官方安全更新。
在这里插入图片描述
如果你觉得这篇文章对你有帮助,不妨点个赞👍,或者分享给你的朋友们吧!你的支持是我持续创作的最大动力!

http://www.xdnf.cn/news/4243.html

相关文章:

  • 候选码 主属性 非主属性
  • STM32--RCC--时钟
  • 【大模型系列篇】开启AI自主科研新时代:WebThinker开源深度研究框架
  • 还原TF卡或U盘
  • 18个国内wordpress主题推荐
  • 京东:外卖上线新功能,但仅限今天
  • NGINX `ngx_http_auth_request_module` 模块详解基于子请求的认证授权方案
  • 已经写好论文的AI率降低
  • 7系列 之 IO_FIFO
  • 大学之大:隆德大学2025.5.6
  • 分布式开发:数字时代的高性能架构革命-为什么要用分布式?优雅草卓伊凡
  • Nmap 工具的详细使用教程
  • StableDiffusionWebUI的AI绘图AI绘视频详细使用教程+报错排坑
  • 遥控器网络推拉流技术要点!
  • 开源向量大模型推荐:2025年技术选型指南
  • 单例模式都有哪些?有什么区别?
  • 疗愈服务预约小程序源码介绍
  • ApplicationRunner执行顺序问题
  • 【硬核数学】0. 序章:万丈高楼平地起,AI数学筑基之旅《从零构建机器学习、深度学习到LLM的数学认知》
  • Java后端开发day42--IO流(二)--字符集字符流
  • 智能学习空间的范式革新:基于AI驱动的自习室系统架构与应用研究
  • 实验三 数据查询
  • Spring AI快速入门
  • QT生成保存 Excel 文件的默认路径,导出的文件后缀自动加(1)(2)等等
  • 如何管理两个Git账户
  • 即开即用,封装 Flask 项目为 exe 文件实操步骤
  • QQ相册下载工具
  • 宁德时代区块链+数字孪生专利解析:去中心化身份认证重构产业安全底座
  • NoUniqueKey问题和Regular join介绍
  • Linux USB Gadget | 框架 / 复合设备实践 / Configfs 配置