RockyLinux 9.7安装Docker完整指南与优化配置
1. RockyLinux 9.7安装Docker全攻略作为RHEL的完美替代品RockyLinux 9.7在企业级应用中越来越受欢迎。最近在部署一套新的CI/CD环境时我选择了RockyLinux 9.7作为基础系统并需要在其上安装Docker。整个过程看似简单但实际遇到了不少坑特别是与SELinux和firewalld的兼容性问题。本文将分享从系统准备到Docker稳定运行的完整过程包含我在生产环境中验证过的配置方案。2. 环境准备与系统检查2.1 系统基础配置确认在开始安装前必须确保系统满足Docker运行的基本要求。执行以下命令检查内核版本和系统架构uname -r # 需要3.10或更高版本 cat /etc/redhat-release # 确认是RockyLinux 9.7 lscpu # 检查CPU架构(x86_64/aarch64)注意如果使用虚拟机务必在BIOS中开启虚拟化支持(VT-x/AMD-V)。我在KVM环境中曾因未开启导致docker.service启动失败。2.2 必要的依赖安装RockyLinux 9.7默认的软件仓库可能不包含最新版Docker需要先添加必要的仓库sudo dnf install -y dnf-plugins-core sudo dnf config-manager --add-repohttps://download.docker.com/linux/centos/docker-ce.repo安装基础工具链sudo dnf install -y device-mapper-persistent-data lvm2 git curl wget3. Docker安装详细步骤3.1 官方仓库安装Docker CE执行以下命令安装Docker社区版及其组件sudo dnf makecache sudo dnf install -y docker-ce docker-ce-cli containerd.io安装完成后验证版本docker --version # 应显示20.10.x或更高 containerd --version # 应显示1.6.x或更高3.2 关键配置调整编辑daemon.json配置文件首次需要创建sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json EOF { exec-opts: [native.cgroupdriversystemd], log-driver: json-file, log-opts: { max-size: 100m }, storage-driver: overlay2, storage-opts: [ overlay2.override_kernel_checktrue ] } EOF经验在RockyLinux 9.7上必须设置storage-driver:overlay2否则会遇到存储驱动不兼容的警告。4. 系统集成与权限配置4.1 SELinux与Firewalld整合RockyLinux默认启用SELinux需要特别处理sudo setenforce 0 # 临时设置为permissive模式 sudo sed -i s/^SELINUXenforcing/SELINUXpermissive/ /etc/selinux/config配置firewalld放行Docker流量sudo firewall-cmd --permanent --zonepublic --add-masquerade sudo firewall-cmd --permanent --zonepublic --add-port2376/tcp sudo firewall-cmd --permanent --zonepublic --add-port2377/tcp sudo firewall-cmd --permanent --zonepublic --add-port7946/tcp sudo firewall-cmd --permanent --zonepublic --add-port7946/udp sudo firewall-cmd --permanent --zonepublic --add-port4789/udp sudo firewall-cmd --reload4.2 用户组与权限管理将当前用户加入docker组避免sudosudo usermod -aG docker $USER newgrp docker # 立即生效验证非root用户权限docker run hello-world # 应能正常执行5. 服务管理与优化5.1 系统服务配置启用并启动Docker服务sudo systemctl enable --now docker sudo systemctl status docker # 检查状态配置日志轮转防止日志爆满sudo tee /etc/logrotate.d/docker EOF /var/lib/docker/containers/*/*.log { rotate 7 daily compress delaycompress missingok copytruncate } EOF5.2 性能调优建议修改systemd服务参数提升性能sudo mkdir -p /etc/systemd/system/docker.service.d sudo tee /etc/systemd/system/docker.service.d/override.conf EOF [Service] ExecStart ExecStart/usr/bin/dockerd -H fd:// --containerd/run/containerd/containerd.sock --default-ulimit nofile102400:102400 EOF应用配置并重启服务sudo systemctl daemon-reload sudo systemctl restart docker6. 常见问题解决方案6.1 虚拟化支持问题如果遇到virtualization support not detected错误确认BIOS中已开启VT-x/AMD-V检查内核模块加载lsmod | grep kvm对于物理机可能需要安装kvm驱动sudo dnf install -y qemu-kvm libvirt virt-install bridge-utils sudo systemctl enable --now libvirtd6.2 存储驱动问题当看到storage-driver相关警告时确认/etc/docker/daemon.json配置正确检查当前存储驱动docker info | grep Storage Driver如果使用devicemapper建议改用overlay2sudo dnf install -y yum-utils device-mapper-persistent-data lvm26.3 镜像加速配置为提升国内拉取镜像速度建议配置镜像加速器sudo tee /etc/docker/daemon.json EOF { registry-mirrors: [ https://registry.cn-hangzhou.aliyuncs.com, https://docker.mirrors.ustc.edu.cn ] } EOF sudo systemctl restart docker7. 生产环境验证7.1 基础功能测试运行测试容器验证基础功能docker run -it --rm alpine sh -c echo Hello from Docker! docker run -d -p 80:80 nginx # 测试端口映射 curl localhost # 应看到Nginx欢迎页7.2 持久化存储验证测试卷挂载功能mkdir ~/test-volume docker run -v ~/test-volume:/data alpine sh -c echo persistent data /data/test.txt cat ~/test-volume/test.txt # 应看到写入内容7.3 网络连通性检查验证容器间通信docker network create test-net docker run -d --name web --network test-net nginx docker run -it --rm --network test-net alpine wget -O- web

相关新闻

构建实时协作Diff查看器:提升代码审查效率的工程实践

构建实时协作Diff查看器:提升代码审查效率的工程实践

在团队协作开发中,代码审查是保证代码质量、统一编码风格和传播知识的关键环节。然而,传统的代码审查流程往往存在效率瓶颈:开发者提交代码后,需要等待同事在GitHub、GitLab等平台上异步查看Diff,通过评论进行交流&…

2026/10/17 9:46:01 阅读更多 →
前端国际化实战指南:从i18n到l10n的完整解决方案

前端国际化实战指南:从i18n到l10n的完整解决方案

1. 为什么前端国际化如此重要?我刚入行前端时,第一次接到多语言需求整个人都是懵的。产品经理轻描淡写地说"加个语言切换功能",我天真地以为就是简单翻译几个文字。直到上线后收到阿拉伯用户的投诉——他们的文字从右向左显示全乱了…

2026/10/17 9:46:32 阅读更多 →
深入解析C++ vector内存管理:从容量机制到内存泄漏实战排查

深入解析C++ vector内存管理:从容量机制到内存泄漏实战排查

1. 从一次线上内存泄漏事故说起那天下午,监控系统突然报警,显示我们一个核心服务的RSS(常驻内存集)正在以肉眼可见的速度缓慢爬升,服务响应延迟也开始增加。排查过程并不复杂,最终定位到一个处理批量数据的…

2026/10/17 9:49:22 阅读更多 →

最新新闻

2026互联网大厂职级薪资全解析:AI测试开发面试与晋升指南

2026互联网大厂职级薪资全解析:AI测试开发面试与晋升指南

1. 从一份薪资爆料帖说起:为什么大家都在盯着这套职级表最近技术圈里聊得最热的话题之一,就是某头部视频平台流出的2026年职级与薪资体系对照表。我前后翻了好几份不同渠道的版本,也跟几位在不同业务线待过的朋友交叉验证了一下,发…

2026/10/18 6:35:53 阅读更多 →
ZooKeeper SSL/TLS加密配置实战:从证书生成到客户端接入

ZooKeeper SSL/TLS加密配置实战:从证书生成到客户端接入

有一次帮内部中间件平台做上线前安全自查,评审的人指着监控面板问了一句:你们的协调服务,客户端和服务端之间是明文还是加密?我当时心里咯噔一下——因为不止是客户端到服务端,集群节点之间也一直在裸奔。回去翻了翻配…

2026/10/18 6:35:53 阅读更多 →
PyTorch深度学习框架:动态图、性能优化与训练管道实战

PyTorch深度学习框架:动态图、性能优化与训练管道实战

如果你打开招聘网站随便翻一圈深度学习的岗位描述,十份里至少有七八份都写着"熟悉 PyTorch,有独立训练模型的经验"。这句话在 2025 年几乎成了行业标配,背后是一个比较直白的现实:PyTorch 已经不只是一个深度学习框架&a…

2026/10/18 6:35:53 阅读更多 →
网络自动化实战:从手工运维到批量配置与智能决策

网络自动化实战:从手工运维到批量配置与智能决策

1. 网络自动化到底是什么:先从一个加班夜说起我到现在还记得那个晚上。凌晨两点,某公司机房的空调嗡嗡响着,我蹲在工位上,对着十几个机柜里的交换机,一台一台地敲命令。原因特别简单——业务要扩容,全网设备…

2026/10/18 6:35:53 阅读更多 →
102道Cypress面试题深度解析:从原理到实战的知识体系梳理

102道Cypress面试题深度解析:从原理到实战的知识体系梳理

102道Cypress面试题整理完之后,回头再看这份资料,它远不只是一份背诵手册。去年我花了两周时间梳理这些题目,本意是为了准备面试,但真正做完之后,反而对自己的Cypress知识体系做了一次全面体检。这篇博文就把我整理这1…

2026/10/18 6:35:53 阅读更多 →
AI论文写作工具实测:从SCI到会议论文的适配指南

AI论文写作工具实测:从SCI到会议论文的适配指南

把AI写论文这件事聊透之前,我先说个结论:真正好用的AI论文写作工具,从来不是那种一键生成全文的“黑箱”,而是能针对不同类型期刊论文,把你从文献整理、结构搭建、语言润色、格式校对这几座大山里逐个捞出来的那几款。…

2026/10/18 6:34:53 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →