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.mzph.cn/pingmian/80112.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

达梦、PostgreSQL数据库讲json解析成临时表(json_table函数的使用)

官网json_table文档路由 路径表达式文档路由 背景&#xff1a;有一些动态表格&#xff0c;需要新建一张中间表&#xff0c;里边就两三个字段比如主表id,某某类型id,某某类型是否选中。对于这种表新建个表还得加各种创建人修改人版本号是否逻辑删除啥的字段太过麻烦。于是可以直…

【软件测试】测试用例的设计方法

目录 一、基于需求进行测试用例的设计 1.1 功能需求测试分析 二、黑盒测试用例设计方法 2.1 等价类划分法(解决穷举) 2.1.1 等价类设计步骤 2.1.2 等价类划分法案例 2.1.2.1 验证 QQ 账号的合法性 2.1.2.2 验证某城市电话号码的正确性 2.1.3 适用场景 2.2 边界值分析…

微服务系统设计

在设计微服务系统时&#xff0c;需要综合考虑架构、业务划分、通信方式、数据管理、安全性、运维等多个方面的问题。 一、微服务系统设计需考虑的问题 1. 服务划分 如何合理拆分服务&#xff0c;避免“微服务地狱”。拆分粒度不宜过小&#xff1a;太多服务增加管理和通信成本…

Django ORM: values() 和 annotate() 方法详解

1. values()方法 1.1 基本概念 values()方法用于返回一个包含字典的QuerySet&#xff0c;而不是模型实例。每个字典表示一个对象&#xff0c;键对应于模型字段名称。 1.2 基本用法 # 获取所有书籍的标题和出版日期 from myapp.models import Bookbooks Book.objects.value…

43.防雷击浪涌设计

防雷击浪涌设计 1. 雷击浪涌形成的机理2. 雷击浪涌的防护 1. 雷击浪涌形成的机理 雷击浪涌分为直击雷和感应雷&#xff1a; 直击雷——带电荷的云对建筑物、避雷针等放电&#xff0c;或者带异种电荷的雷云撞击放电&#xff0c;其能量超级大&#xff1b; 感应雷——雷云在高压…

双端口ram与真双端口ram的区别

端口独立性 真双端口RAM&#xff1a;拥有两个完全独立的读写端口&#xff08;Port A和Port B&#xff09;&#xff0c;每个端口都有自己的地址总线、数据总线、时钟、使能信号和写使能信号。这意味着两个端口可以同时进行读写操作&#xff0c;且互不干扰。 伪双端口RAM&…

Python毕业设计219—基于python+Django+vue的房屋租赁系统(源代码+数据库+万字论文)

毕设所有选题&#xff1a; https://blog.csdn.net/2303_76227485/article/details/131104075 基于pythonDjangovue的房屋租赁系统(源代码数据库万字论文)219 一、系统介绍 本项目前后端分离&#xff0c;分为租客、房东、管理员三种角色 1、租客&#xff1a; 注册、登录、公…

Webpack基本用法学习总结

Webpack 基本使用核心概念处理样式资源步骤&#xff1a; 处理图片资源修改图片输出文件目录 自动清空上次打包的内容EslintBabel处理HTML资源搭建开发服务器生产模式提取css文件为单独文件问题&#xff1a; Css压缩HTML压缩 小结1高级SourceMap开发模式生产模式 HMROneOfInclud…

数字IC前端学习笔记:锁存器的综合

相关阅读 数字IC前端专栏https://blog.csdn.net/weixin_45791458/category_12173698.html?spm1001.2014.3001.5482 锁存器是一种时序逻辑&#xff0c;与寄存器相比面积更小&#xff0c;但它的存在会使静态时序分析(STA)变得更加复杂&#xff0c;因此懂得什么样的设计会综合出…

LVGL源码学习之渲染、更新过程(2)---无效区域的处理

LVGL版本&#xff1a;8.1 往期回顾&#xff1a; LVGL源码学习之渲染、更新过程(1)---标记和激活 区域合并 在前面的代码分析中&#xff0c;发现标记无效区域的工作其实很繁琐&#xff0c;虽然大部分区域因为包含关系被剔除&#xff0c;但仍可能存在相互交叉的区域&#xff0c…

01 dnsmasq 中 dns服务

前言 这里我们主要是 来看一下 dns 服务器这边的相关业务处理 通常来说 在我们日常生活中 还是经常会需要使用 dns 的情况, 主要是更加友好的去给一个主机命名一个别名 比如 现在我的应用在服务器 192.168.220.133 但是我不想记这个生硬的 ip, 我可能更期望记录一个域名, …

最优化方法Python计算:有约束优化应用——线性Lasso回归分类器

利用线性Lasso模型类LineLassoModel类&#xff08;见博文《最优化方法Python计算&#xff1a;有约束优化应用——线性Lasso回归预测器》&#xff09;及分类器类Classification&#xff08;见博文《最优化方法Python计算&#xff1a;无约束优化应用——线性回归分类器》&#xf…

Python基础学习-Day20

目录 奇异值分解&#xff08;SVD&#xff09;的输入和输出奇异值的应用实际案例1. 问题分析2. 解决方案&#xff1a;对测试集应用相同的变换3. 为什么不能对测试集单独做 SVD&#xff1f;4. 代码示例&#xff1a;训练集和测试集的 SVD 降维6. 实际操作中的注意事项 奇异值分解&…

2025年 全新 AI 编程工具 Cursor 安装使用教程

一、Cursor 软件下载 首选&#xff0c;登录Cursor官网&#xff0c;进行软件下载&#xff0c;官网下载地址如下&#xff1a; Cursor AI IDE 下载 二、Cursor软件安装配置 此处以Windows10系统安装为例&#xff0c;下载完成之后&#xff0c;右键安装包&#xff0c;以管理员身份…

[vue]error:0308010C:digital envelope routines::unsupported

npm run dev 报错&#xff1a; \node_modules\webpack\hot\dev-server.jsnode:internal/crypto/hash:71 this[kHandle] new _Hash(algorithm, xofLen); Error: error:0308010C:digital envelope routines::unsupported opensslErrorStack: [ error:03000086:digital env…

开放的力量:新零售生态的共赢密码

当某头部生鲜平台向供应商开放销售预测系统后&#xff0c;合作伙伴的库存周转率竟提升12%——这个反常识的案例&#xff0c;正在重塑商业竞争的底层逻辑。 生态共建三板斧 ▌模块化设计&#xff1a;像搭积木一样开放 • 乐高式API架构&#xff1a;30%接口支持自由组合&#xff…

深入理解Spring缓存注解:@Cacheable与@CacheEvict

在现代应用程序开发中&#xff0c;缓存是提升系统性能的重要手段。Spring框架提供了一套简洁而强大的缓存抽象&#xff0c;其中Cacheable和CacheEvict是两个最常用的注解。本文将深入探讨这两个注解的工作原理、使用场景以及最佳实践。 1. Cacheable注解 基本概念 Cacheable…

[python] 函数3-python内置函数

一 内置函数 导入:import builtins 1.1 查看内置函数 大写字母开头的一般是内置变量小写的一般是内置函数 import builtins print(dir(builtins)) 1.2 abs() 求绝对值 print(abs(-10)) 1.3 sum()求和 不能直接用纯数字,因为不是可迭代对象 运算时只要一个是浮点数,结果就…

QT异步线程通信

在使用 QThreadPool 提交任务后&#xff0c;如果你需要知道任务何时完成&#xff0c;并且需要使用任务的执行结果&#xff0c;可以通过以下几种方式来实现&#xff1a; 1. 使用信号和槽 QRunnable 提供了一个 finished() 信号&#xff0c;当任务执行完成后会发出。你可以在任…

利用并行处理提高LabVIEW程序执行速度

在 LabVIEW 编程中&#xff0c;提升程序执行速度是优化系统性能的关键&#xff0c;而并行处理技术则是实现这一目标的有力武器。通过合理运用并行处理&#xff0c;不仅能加快程序运行&#xff0c;还能增强系统的稳定性和响应能力。下面将结合实际案例&#xff0c;深入探讨如何利…