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

告别 CentOS 后,在 Rocky Linux 8 上玩转 Docker:手把手教你数据持久化与镜像管理

Rocky Linux 8 上的 Docker 数据持久化与镜像管理实战指南当 CentOS 逐渐退出历史舞台Rocky Linux 8 正成为企业级 Linux 用户的新宠。作为 CentOS 的完美替代品Rocky Linux 不仅继承了 RHEL 的稳定性还提供了更灵活的开源生态支持。在这个迁移浪潮中Docker 作为容器化技术的代表其重要性不言而喻。本文将带你深入探索在 Rocky Linux 8 上使用 Docker 的两个核心技能数据持久化与镜像生命周期管理这些正是从 CentOS 迁移过来的用户最需要掌握的实用技术。1. Rocky Linux 8 上的 Docker 环境准备1.1 系统基础配置在开始 Docker 之旅前我们需要确保 Rocky Linux 8 系统处于最佳状态。首先更新系统所有软件包sudo dnf update -y接下来安装必要的工具集这些工具将为后续 Docker 安装和管理提供支持sudo dnf install -y yum-utils device-mapper-persistent-data lvm2注意Rocky Linux 8 使用 dnf 作为包管理器与 CentOS 8 保持一致但命令选项可能有细微差别。1.2 Docker 安装与配置添加 Docker CE 的官方仓库国内用户可替换为阿里云镜像源sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo安装 Docker 社区版及其相关组件sudo dnf install -y docker-ce docker-ce-cli containerd.io启动 Docker 服务并设置为开机自启sudo systemctl enable --now docker验证安装是否成功sudo docker version如果看到客户端和服务端的版本信息说明安装已完成。为了提升拉取镜像的速度建议配置国内镜像加速器sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json -EOF { registry-mirrors: [https://your-mirror.mirror.aliyuncs.com] } EOF sudo systemctl restart docker2. Docker 数据持久化实战2.1 理解 Docker 存储机制Docker 默认使用联合文件系统UnionFS来管理容器内的文件这种设计带来了轻量化的优势但也意味着当容器删除时其中的所有更改都会丢失。数据持久化通过将主机目录挂载到容器内部实现了数据在容器删除后依然保留主机与容器间的数据共享多容器访问同一数据源的可能性2.2 挂载主机目录的三种方式在 Docker 中实现数据持久化主要有以下三种挂载方式挂载类型命令选项特点适用场景匿名卷-v /容器路径Docker 自动创建匿名卷临时数据存储命名卷-v 卷名:/容器路径可管理的持久化存储数据库等需要长期保存的数据绑定挂载-v /主机路径:/容器路径直接映射主机目录开发环境、配置文件共享2.3 绑定挂载的详细操作绑定挂载是最直接的数据持久化方式特别适合开发环境和需要频繁修改的场景。以下是一个完整的示例# 在主机创建数据目录 mkdir -p ~/docker_data/webapp # 运行容器并挂载目录 docker run -d --name my_webapp \ -v ~/docker_data/webapp:/var/www/html \ -p 8080:80 \ nginx:latest这个命令做了以下几件事创建了一个名为 my_webapp 的容器将主机的 ~/docker_data/webapp 目录挂载到容器的 /var/www/html将容器的 80 端口映射到主机的 8080 端口使用 nginx:latest 镜像验证挂载是否成功# 在主机创建测试文件 echo Hello from Host ~/docker_data/webapp/test.txt # 进入容器查看 docker exec -it my_webapp bash cat /var/www/html/test.txt你应该能看到 Hello from Host 的输出证明挂载成功。2.4 数据卷的高级管理对于生产环境使用 Docker 数据卷Volume是更专业的选择。数据卷完全由 Docker 管理不依赖于主机的目录结构。创建并管理数据卷# 创建数据卷 docker volume create mydb_data # 查看数据卷详情 docker volume inspect mydb_data # 使用数据卷运行容器 docker run -d --name mysql_db \ -v mydb_data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORDsecret \ mysql:5.7 # 删除不再使用的数据卷 docker volume prune提示数据卷的实际存储位置通常在 /var/lib/docker/volumes/ 下但建议通过 Docker 命令管理而非直接操作这些目录。3. Docker 镜像全生命周期管理3.1 镜像的获取与查看获取镜像是使用 Docker 的第一步理解镜像的组成对后续管理至关重要。搜索 Docker Hub 上的可用镜像docker search nginx拉取特定版本的镜像不指定标签时默认为 latestdocker pull nginx:1.21查看本地镜像列表及详细信息docker images docker inspect nginx:1.21删除不再需要的镜像docker rmi nginx:1.21注意删除镜像前需确保没有容器在使用它包括已停止的容器。3.2 镜像的构建与优化除了从仓库拉取我们还可以通过 Dockerfile 构建自定义镜像。以下是一个高效的 Dockerfile 示例# 使用轻量级基础镜像 FROM alpine:3.14 # 设置元数据 LABEL maintaineryour.emailexample.com LABEL version1.0 # 安装必要软件 RUN apk add --no-cache nginx \ mkdir -p /run/nginx # 复制配置文件 COPY nginx.conf /etc/nginx/nginx.conf # 暴露端口 EXPOSE 80 # 设置启动命令 CMD [nginx, -g, daemon off;]构建镜像并优化层数docker build -t my_nginx:1.0 -f Dockerfile .镜像构建的优化技巧合并多个 RUN 指令减少层数使用 .dockerignore 文件排除不必要的上下文选择合适的基础镜像如 alpine 版本按照变更频率排序指令利用缓存3.3 镜像的导出与导入在离线环境或需要迁移时可以将镜像保存为文件# 导出镜像为tar文件 docker save -o nginx_image.tar nginx:1.21 # 从tar文件导入镜像 docker load -i nginx_image.tar对于只想复制文件系统而不需要历史记录和元数据的情况可以使用 export/import# 导出容器文件系统 docker export my_webapp webapp_fs.tar # 从文件系统创建新镜像 cat webapp_fs.tar | docker import - my_webapp:snapshot4. 容器管理高级技巧4.1 容器状态监控与调试了解容器的实时状态对于维护至关重要。以下命令可以帮助你深入掌握容器运行情况查看容器日志docker logs -f --tail 100 my_webapp监控容器资源使用docker stats my_webapp进入运行中容器的 shelldocker exec -it my_webapp bash检查容器详细配置docker inspect my_webapp | less4.2 容器网络与存储管理Docker 的网络模型提供了多种连接方式。创建自定义网络可以实现更好的隔离# 创建桥接网络 docker network create --driver bridge my_network # 将容器连接到网络 docker network connect my_network my_webapp # 查看网络详情 docker network inspect my_network对于存储除了基本的挂载还可以使用 tmpfs 实现内存中的临时存储docker run -d --name tmpfs_test \ --tmpfs /app/cache:size100m,mode1777 \ nginx:latest4.3 容器与镜像的转换将运行中的容器保存为新镜像docker commit -m Added custom config -a Your Name my_webapp my_nginx:custom这个命令会创建一个新的镜像包含容器当前的文件系统和运行状态。但要注意提交的镜像会丢失原始 Dockerfile 的构建历史最佳实践是尽量通过 Dockerfile 重建而非 commit提交前应清理不必要的临时文件和缓存比较容器与原始镜像的差异docker diff my_webapp这个命令会显示所有被修改、添加或删除的文件列表帮助理解容器状态变化。5. 生产环境最佳实践5.1 安全加固措施在生产环境运行 Docker 需要特别注意安全性避免使用 root 用户运行容器docker run -d --name secure_app \ --user 1000:1000 \ -v /path/on/host:/path/in/container \ nginx:latest限制容器资源使用docker run -d --name limited_app \ --memory512m \ --cpus1.5 \ --pids-limit100 \ nginx:latest定期扫描镜像漏洞docker scan nginx:latest5.2 自动化运维方案对于大规模部署可以考虑以下自动化方案使用 docker-compose 管理多容器应用version: 3.8 services: web: image: nginx:latest ports: - 8080:80 volumes: - ./web:/usr/share/nginx/html db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: secret volumes: - db_data:/var/lib/mysql volumes: db_data:启动整个堆栈docker-compose up -d设置日志轮转防止磁盘爆满sudo tee /etc/docker/daemon.json -EOF { log-driver: json-file, log-opts: { max-size: 10m, max-file: 3 } } EOF sudo systemctl restart docker5.3 监控与日志集中管理生产环境需要完善的监控体系使用 cAdvisor 监控容器资源部署 Prometheus Grafana 可视化监控配置 ELK 栈集中管理日志设置适当的告警阈值一个简单的资源监控方案docker run -d \ --namecadvisor \ --volume/:/rootfs:ro \ --volume/var/run:/var/run:ro \ --volume/sys:/sys:ro \ --volume/var/lib/docker/:/var/lib/docker:ro \ --publish8081:8080 \ --detachtrue \ gcr.io/cadvisor/cadvisor:v0.47.0访问 http://localhost:8081 即可查看容器资源使用情况。

相关文章:

告别 CentOS 后,在 Rocky Linux 8 上玩转 Docker:手把手教你数据持久化与镜像管理

Rocky Linux 8 上的 Docker 数据持久化与镜像管理实战指南 当 CentOS 逐渐退出历史舞台,Rocky Linux 8 正成为企业级 Linux 用户的新宠。作为 CentOS 的完美替代品,Rocky Linux 不仅继承了 RHEL 的稳定性,还提供了更灵活的开源生态支持。在这…...

HDMI矩阵主要解决什么问题

随着VGA/DVI接口的矩阵慢慢退出市场,现在信号源和显示设备慢慢都统一到HDMI接口了。HDMI矩阵从早期的监控室用于切换硬盘录像机的信号到会议室用来切换会议摄像机,它的核心作用就是解决多路 HDMI 信号的输入、然后切换或分配到多路HDMI输出的问题&#x…...

Gemma 4 / PaliGemma 2 / Ollama / Open WebUI 本地部署复盘

Gemma 4 / PaliGemma 2 / Ollama / Open WebUI 本地部署复盘 日期:2026-04-20环境:WSL2 Ubuntu (gkubuntu2004)目标: 本地部署 Gemma 4本地部署 PaliGemma 2使用 Ollama 提供交互式聊天能力使用 Open WebUI 提供图形化聊天界面尝试将 PaliGem…...

别再手动一个个启动容器了!用Docker Compose编排一个Web+MySQL+Redis的完整项目(附yml文件详解)

别再手动一个个启动容器了!用Docker Compose编排一个WebMySQLRedis的完整项目(附yml文件详解) 每次部署多容器项目时,最头疼的就是手动启动每个服务、配置网络、挂载数据卷。想象一下:先启动MySQL容器,设置…...

NUMA架构与Linux内存策略优化实践

1. NUMA架构与内存策略基础 NUMA(Non-Uniform Memory Access)架构是现代多核处理器系统中的重要设计范式。与传统的UMA(Uniform Memory Access)架构不同,NUMA系统中每个处理器核心或处理器组(称为NUMA节点&…...

VCS仿真中用好断言debug选项,让你的验证效率翻倍(附避坑指南)

VCS仿真中高效断言调试的进阶技巧与实战指南 在复杂SoC验证环境中,断言(Assertion)作为设计意图的"活文档",其调试效率直接影响项目周期。本文将从VCS仿真器的编译选项配置、断言控制文件编写技巧、波形分析策略三个维度…...

不只是hosts问题:Git clone失败背后的网络原理与安全风险(附Wireshark抓包分析)

Git Clone失败背后的网络协议全景解析:从DNS到TLS的安全实践 当你输入git clone https://github.com/example/repo.git后终端抛出"Could not resolve hostname"时,多数开发者会条件反射地修改hosts文件。但这个看似简单的报错背后&#xff0c…...

星链4SAPI中转枢纽深度技术解构:架构优势、工程实践与演进脉络

在当下的技术圈层中,围绕大模型接口调用、API密钥管理与中转网关的讨论热度居高不下。几乎每隔一段时间,就会有关于“黑盒优化”或“算力调度霸权”的新观点浮现。这背后的技术实体——星链4SAPI所代表的模型接口聚合层,正成为开发者工具链中…...

动态上下文发现:Cursor的最新思路,重新定义AI上下文管理

核心结论:当所有人都在比拼谁的上下文窗口更大时,Cursor团队反其道而行之,提出了动态上下文发现(Dynamic Context Discovery) 范式。它彻底摒弃了"把所有东西都塞进提示词"的传统做法,让AI智能体…...

【会议征稿通知 | 衢州学院主办 | IET出版 | EI 、Scopus稳定检索】第三届人工智能与电力系统国际学术会议(AIPS 2026)

第三届人工智能与电力系统国际学术会议(AIPS 2026) 2026 3rd International Conference on Artificial Intelligence and Power System 2026年5月22-24日 | 中国-浙江-衢州 大会官网:www.icaips.org 截稿时间:见官网(早投稿&am…...

Visual C++运行库终极修复指南:5分钟解决Windows软件运行错误

Visual C运行库终极修复指南:5分钟解决Windows软件运行错误 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过软件无法启动&#xff0…...

终极指南:使用115proxy-for-kodi高效实现115云盘视频电视播放

终极指南:使用115proxy-for-kodi高效实现115云盘视频电视播放 【免费下载链接】115proxy-for-kodi 115原码播放服务Kodi插件 项目地址: https://gitcode.com/gh_mirrors/11/115proxy-for-kodi 想要在电视上直接流畅播放115云盘中的视频内容?115pr…...

VIC水文模型深度解析:从基础内容处理到模型参数率定的全程视频教学指南

vic水文模型 VIC水文模型径流模拟 全程视频教学指导,讲解详细 从基础内容处理讲解到模型参数率定全程教学。 零基础可学。 自用模型,从零到实践,历时两周左右 全套教程 最近在折腾VIC水文模型的径流模拟,发现这玩意儿就像搭乐高—…...

避开安川MP3300通讯的那些坑:服务端/客户端模式选择、地址分配与MSG函数配置详解

安川MP3300工业通讯实战:服务端/客户端模式深度解析与高阶配置 在工业自动化系统集成中,安川MP3300控制器与上位机的稳定通讯往往是项目成败的关键分水岭。许多工程师在完成基础配置后,仍会在实际调试阶段遭遇各种"幽灵问题"——通…...

3分钟实战:用VoiceFixer拯救受损语音的完整应用手册

3分钟实战:用VoiceFixer拯救受损语音的完整应用手册 【免费下载链接】voicefixer General Speech Restoration 项目地址: https://gitcode.com/gh_mirrors/vo/voicefixer 你是否曾为会议录音中的杂音而苦恼?是否为老磁带转录的嘶嘶声感到无奈&…...

达芬奇剪辑效率翻倍秘籍:深入解读F9到F11(插入、覆盖、替换)的区别与实战应用场景

达芬奇剪辑效率翻倍秘籍:深入解读F9到F11(插入、覆盖、替换)的区别与实战应用场景 在专业视频剪辑领域,DaVinci Resolve凭借其强大的功能和流畅的工作流程,已成为众多剪辑师的首选工具。然而,许多中级用户在…...

不止于连线:用Logisim仿真深入理解ALU运算器背后的计算机组成原理

从逻辑门到运算器:用Logisim拆解ALU设计的底层智慧 在计算机组成原理的学习中,运算器(ALU)的设计往往是最令人着迷也最令人困惑的部分。许多学习者能够按照实验指导书完成线路连接,却对"为什么这样设计"感到迷茫——为什么加法器要…...

别再纠结选型了!CH9101与FT232R/FT230X实战对比,从引脚兼容到驱动配置的保姆级指南

CH9101与FT232R/FT230X终极选型指南:硬件兼容与驱动配置全解析 当硬件工程师面对USB转串口芯片选型时,CH9101系列与FTDI的FT232R/FT230X总是绕不开的对比选项。这两类芯片在市场上占据重要地位,但究竟该如何选择?更重要的是&#…...

Dactyl Lynx分体式人体工学键盘设计与实践

1. 项目概述:Dactyl Lynx分体式人体工学键盘作为一名长期受腕管综合征困扰的开发者,我在过去三年里尝试了市面上几乎所有号称"人体工学"的键盘,最终发现开源社区的Dactyl系列才是真正的解决方案。Dactyl Lynx是我基于原版Dactyl进行…...

为什么你的Dify知识库召回率低于62%?文档解析配置中被低估的7个语义锚点参数(附AB测试压测报告)

第一章:Dify知识库召回率失衡的根因诊断Dify知识库召回率失衡并非单一模块故障所致,而是语义理解、向量化策略与检索逻辑三者耦合失效的结果。典型表现为高相关文档未被召回(漏召),或低相关文档大量混入(误…...

【车载场景专属】Dify调试避坑手册:92%工程师忽略的3类时序错位(RT-Thread+TensorRT环境实测)

第一章:Dify车载问答调试的核心挑战与定位在车载智能座舱场景中,Dify作为低代码LLM应用开发平台,其问答能力需同时满足低延迟响应、离线可用性、车规级稳定性及多模态上下文理解等严苛要求。调试过程并非单纯调整提示词或模型参数&#xff0c…...

Hypnos-i1-8B惊艳案例:用自然语言描述→自动生成LaTeX+Python可执行代码

Hypnos-i1-8B惊艳案例:用自然语言描述→自动生成LaTeXPython可执行代码 1. 模型能力概览 Hypnos-i1-8B是一款基于量子噪声注入训练的8B参数开源大模型,专为复杂逻辑推理和数学问题求解而设计。它能够理解自然语言描述,并直接生成可执行的La…...

为什么企业智能体必须告别“对话框”:拆解 Agentic UI 与交互重构

自从 ChatGPT 确立了“对话框(Chat UI)”作为 AI 的默认交互形态后,几乎所有的企业级 AI 应用都陷入了这种路径依赖:无论是在 ERP 里查库存,还是在 OA 里提报销,系统统统弹出一个聊天窗口让员工去打字提问。…...

解锁ReFS潜能:在Windows 8.1与10中安全配置与故障规避指南

1. 认识ReFS:为什么值得冒险启用它? 第一次听说ReFS这个文件系统时,我正被NTFS频繁的磁盘错误折腾得焦头烂额。作为Windows 8.1和10内置的新一代文件系统,ReFS(弹性文件系统)就像个自带修复功能的智能管家。…...

手把手教你用Python搞定CTF中的文件逆序与LSB隐写(附emoji解密)

手把手教你用Python破解CTF中的文件逆序与LSB隐写术 第一次接触CTF比赛中的MISC题目时,很多人会被那些看似普通的文件难住。一个没有后缀名的"zip"文件,一张看似平常的PNG图片,背后可能隐藏着需要层层解密的flag。本文将带你从零开…...

老系统安全加固指南:以久草CMS V1.9为例,手把手教你修复后台文件写入与CSRF组合漏洞

老系统安全加固实战:从漏洞分析到修复的完整方案 当企业运维人员接手一个历史悠久的CMS系统时,面临的不仅是技术债务,更是一场与时间赛跑的安全保卫战。以某CMS V1.9为例,这个发布于多年前的系统至今仍在不少中小型网站服役&#…...

抖音批量下载助手完整教程:三步实现自动化视频采集

抖音批量下载助手完整教程:三步实现自动化视频采集 【免费下载链接】douyinhelper 抖音批量下载助手 项目地址: https://gitcode.com/gh_mirrors/do/douyinhelper 还在为手动保存抖音视频而烦恼?面对心仪创作者的精彩内容,却只能一个个…...

HTTrack网站镜像工具:从入门到精通的完整使用指南

HTTrack网站镜像工具:从入门到精通的完整使用指南 【免费下载链接】httrack HTTrack Website Copier, copy websites to your computer (Official repository) 项目地址: https://gitcode.com/gh_mirrors/ht/httrack HTTrack是一款强大的网站镜像工具和离线浏…...

易语言实战:绕过‘Content-Type’陷阱,手把手教你上传图片到任意表单

易语言实战:HTTP文件上传协议深度解析与边界处理技巧 在自动化工具开发中,文件上传功能几乎是每个开发者都会遇到的常规需求。但当你用易语言实现图片上传时,是否遇到过服务器返回"Invalid Content-Type"或"Missing boundary&…...

别再花钱买插件了!用这3个免费3dMAX脚本,轻松搞定砖墙、屋顶和地板生成

3D建筑建模效率革命:3款免费脚本深度解析与实战应用 在建筑可视化与室内设计领域,时间就是竞争力。当项目周期压缩到以小时计算时,传统手动建模方式往往成为瓶颈——一面石墙可能需要调整数十次UV贴图,屋顶瓦片的排列耗费整个下午…...