以下是针对您遇到的问题分步解答和解决方案:


一、核心结论

可以采用目录方式:您的命令中的 -v /root/nginx05-vol/:/usr/share/nginx/html/ 是正确的目录挂载语法。
看不到新文件的可能原因主要集中在 权限问题缓存机制操作顺序错误 上。


二、具体排查步骤与解决方案

1. 检查宿主机目录权限

⚠️ 关键问题:Nginx 容器默认以非 root 用户(通常是 #1001)运行,若宿主机目录权限不足,会导致容器内无法读取新文件。

修复步骤

# 切换至宿主机目录
cd /root/nginx05-vol/# 授予所有用户读权限(最小化权限原则推荐以下两种方案之一):
# 方案A:开放读权限给所有人
chmod a+r ./*# 方案B:修改目录所有权为 Nginx 用户的 UID(推荐生产环境)
chown 1001:1001 ./*  # 注意替换为实际 Nginx 用户 ID
2. 验证文件是否真实存在于宿主机目录

📌 常见误区:以为文件已创建,实则因路径错误或名称拼写错误导致未生成。

验证命令

ls -l /root/nginx05-vol/  # 确认文件存在且大小正常
3. 进入容器内部直接查看挂载点

通过此操作可快速判断问题是出在 宿主机→容器同步 环节,还是 容器内服务未加载 环节。

操作步骤

# 进入运行中的容器终端
docker exec -it nginx-and-volume2 /bin/bash# 查看挂载目录内容
ls -l /usr/share/nginx/html/
4. 处理 Nginx 缓存与重启

🔄 现象解释:即使文件已成功同步到容器内,Nginx 仍可能因缓存机制未加载新文件。

解决方案

# 方法1:优雅重启 Nginx(推荐)
kill -HUP 1  # 向主进程发送 SIGHUP 信号# 方法2:暴力重启容器(快速验证)
docker restart nginx-and-volume2
5. 检查 SELinux/AppArmor 安全模块干扰

🚨 特殊场景:若您的系统启用了 SELinux 或 AppArmor,可能会阻止容器访问特定目录。

临时解决方案

# 尝试禁用 SELinux(仅用于测试)
setenforce 0# 若有效,需永久修改策略(联系运维人员)

三、完整操作示例

假设您要在 /root/nginx05-vol/ 下新增 test.html 并让容器识别:

  1. 宿主机操作

    cd /root/nginx05-vol/
    echo "<h1>Test File</h1>" > test.html
    chmod 644 test.html  # 确保所有用户可读
    
  2. 容器内验证

    docker exec -it nginx-and-volume2 ls -l /usr/share/nginx/html/
    # 应能看到 test.html
    
  3. 浏览器访问测试
    打开浏览器输入 http://<宿主机IP>:82/test.html(注意端口号对应关系)。


四、常见问题对照表

症状可能原因解决方案
容器内完全看不到新文件宿主机目录权限不足chmod a+rchown 1001
容器内能看到文件但浏览器打不开Nginx 未重新加载配置kill -HUP 1 或重启容器
文件间歇性出现SELinux/AppArmor 拦截检查日志或临时禁用安全模块
文件名乱码/特殊字符丢失编码不一致确保文件使用 UTF-8 编码保存

五、最佳实践建议

  1. 开发环境简化权限:暂时使用 chmod 777 /root/nginx05-vol/ 快速验证功能,后续收紧权限。
  2. 生产环境规范:通过 chown 将目录所有权设为 1001:1001(匹配 Nginx 用户)。
  3. 自动化部署:在 Dockerfile 或 Compose 文件中声明卷挂载,避免手动管理权限。

💡 提示:若频繁遇到权限问题,建议改用数据卷(Data Volume)而非直接绑定宿主目录,可通过 docker volume create 预先创建并配置好权限的卷。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/90561.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/90561.shtml
英文地址,请注明出处:http://en.pswp.cn/web/90561.shtml

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

相关文章

uniapp 报错 Not found ... at view.umd.min.js:1的问题

问题描述&#xff1a; uniapp的app中&#xff0c;当页面中使用多个v-if后会出现这个报错解决方案&#xff1a; 1、在v-if的地方加上key属性&#xff08;key属性要保证唯一&#xff09; 2、用v-show替换v-if&#xff08;不建议&#xff0c;可能会影响业务&#xff09;

水电站自动化升级:Modbus TCP与DeviceNet的跨协议协同应用

水电站的自动化系统就像一个精密的“神经中枢”&#xff0c;既要应对水流变化带来的动态负载&#xff0c;又得保证闸门启闭、水轮机调节等关键动作的精准性。我们去年参与的某水电站改造项目里&#xff0c;就遇到了一个典型问题&#xff1a;中控室的施耐德PLC采用Modbus TCP协议…

基于Matlab图像处理的火灾检测系统设计与实现

随着计算机视觉技术的快速发展&#xff0c;基于图像处理的火灾检测系统在安全监控领域的应用得到了广泛关注。本文提出了一种基于图像处理的火灾检测系统&#xff0c;该系统通过对图像进行预处理、颜色空间转换、阈值化处理和形态学分析&#xff0c;自动检测火灾疑似区域。首先…

信息学奥赛一本通 1593:【例 2】牧场的安排 | 洛谷 P1879 [USACO06NOV] Corn Fields G

【题目链接】 ybt 1593&#xff1a;【例 2】牧场的安排 洛谷 P1879 [USACO06NOV] Corn Fields G 【题目考点】 1. 状压动规 【解题思路】 集合状态&#xff1a;n个元素中&#xff0c;选择x个元素构成的集合&#xff0c;可以由一个n位二进制数表示。第i位为1表示选择第i个元…

SpringBoot创建项目的方式

一、Idea Spring initializr创建&#xff08;Spring 官网下载&#xff09; Spring官网只支持SpringBoot3.0以上&#xff0c;JDK17以上 二、idea Spring inst创建&#xff08;阿里云下载&#xff09; 阿里云可以支持JDK8的版本 Spring版本选择2.7.6&#xff0c;选择合适的依赖添…

云原生 —— K8s 容器编排系统

一、 简介Kubernetes&#xff0c;也称为K8s&#xff0c;是一个开源的容器编排系统&#xff0c;用于自动部署、扩展和管理容器化应用程序&#xff0c;帮助开发者更高效地跨集群管理应用。本文总结了 k8s 的基础概念和技术架构。二、基础概念1. 云原生&#xff08;Cloud Native…

SQLite中SQL的解析执行:Lemon与VDBE的作用解析

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu) 在 SQLite 的内部实现中&#xff0c;SQL 语句的解析与执行是一个精妙的过程&#xff0c;涉及词法分析、语法分析、中间代码生成与执行等多个环节。其中&#xff0c;Lemon 工具和 VDBE&#xff08;Virtual Database Engine…

C++学习笔记(十:类与对象基础)

往篇内容&#xff1a; C学习笔记&#xff08;一&#xff09; 一、C编译阶段※ 二、入门案例解析 三、命名空间详解 四、C程序结构 C学习笔记&#xff08;二&#xff09; 五、函数基础 六、标识符 七、数据类型 补充&#xff1a;二进制相关的概念 sizeof 运算符简介 补…

图片查重从设计到实现(4)图片向量化存储-Milvus 单机版部署

Milvus 单机版部署 在 Docker 环境下安装、应用和配置 Milvus 向量数据库可以按照以下步骤进行&#xff0c;涵盖从安装到基础应用的完整流程&#xff1a; 1. 部署前准备 服务器&#xff1a;建议测试环境配置 2 核 CPU、8GB 内存&#xff1b;处理 100 万组向量数据&#xff0c;…

前端版本更新检测机制

&#x1f4cc; 一、为什么需要前端版本更新检测机制&#xff1f;在现代 Web 项目中&#xff0c;我们通常会通过 CDN 或缓存策略来加快页面加载速度&#xff0c;但这也带来了一个问题&#xff1a;用户可能访问的是旧版本的页面或资源&#xff0c;而不会自动更新到最新版本。这在…

Python(09)正则表达式

特殊字符 1. 基本元字符 .&#xff1a;匹配除换行符以外的任意单个字符。 *&#xff1a;匹配前面的元素零次或多次。 &#xff1a;匹配前面的元素一次或多次。 ?&#xff1a;匹配前面的元素零次或一次。 2. 定量符 {n}&#xff1a;匹配前面的元素恰好 n 次。 {n,}&#xff1a;…

k8s容器放开锁内存限制

参考&#xff1a;https://access.redhat.com/solutions/1257953 问题 nccl-test容器docker.io/library/nccl-tests:24.12中跑mpirun&#xff0c;buff设置为NCCL_BUFFSIZE503316480 提示out of memory&#xff1a; pod-1:78:91 [0] include/alloc.h:114 NCCL WARN Cuda failure …

基于Zigee的温度数据采集系统

大家好&#xff0c;本文带来的是单片机课设-基于Zigee的温度数据采集系统。 一、设计内容和要求 基于Zigbee的数据采集系统 1.1设计内容 &#xff08;1&#xff09;分析对比Bluetooth、Zigbee、Lora方式组网的基本原理和性能差异&#xff0c;撰写分析报告&#xff1b; &#xf…

ATH12K 驱动框架分析

文章目录 Linux Wireless 驱动框架深入分析 **1. 核心框架层次结构** **1.1 cfg80211 子系统 (`net/wireless/`)** **1.2 mac80211 子系统 (`net/mac80211/`)** **2. ath12k 驱动架构分析** **2.1 核心管理文件** **2.2 数据路径文件** **2.3 平台接口文件** **2.4 功能模块文件…

OSPF路由协议单区域

RIP的不足 以跳数评估的路由并非最优路径 如果RTA选择S0/0传输&#xff0c;传输需时会大大缩短为3sRIP协议限制网络直径不能超过16跳 收敛速度慢 RIP定期路由更新 – 更新计时器&#xff1a;定期路由更新的时间间隔&#xff0c;默认30秒。 – 失效计时器&#xff1a;失效计时器…

Kubernetes部署与管理Scrapy爬虫:企业级分布式爬虫平台构建指南

引言&#xff1a;Kubernetes在爬虫领域的战略价值在大规模数据采集场景中&#xff0c;​​容器化爬虫管理​​已成为企业级解决方案的核心。根据2023年爬虫技术调查报告&#xff1a;采用Kubernetes的爬虫系统平均资源利用率提升​​65%​​故障恢复时间从小时级缩短至​​秒级​…

Web-Machine-N7靶机攻略

一.环境准备&#xff08;VBox&#xff0c;kali虚拟机&#xff0c;靶机&#xff09; 1.1Vbox下载地址: Downloads – Oracle VirtualBox 1.2将N7导入到这个虚拟机中 1.3将kali和Vbox都设置成桥接模式 1.4开启靶机 若鼠标出不来可以使用组合技,CtrlAltDelete强制退出 二.信息…

用毫秒级视频回传打造稳定操控闭环之远程平衡控制系统技术实践

在工业自动化、远程机器人、无人装备等复杂作业场景中&#xff0c;远程实时操控正逐步取代传统“监控指令”模式&#xff0c;成为提升效率与保障安全的关键能力。尤其在高风险、高精度的应用环境中&#xff0c;操作者不仅要“能控”&#xff0c;更要“看得准、反应快”。 真正…

瑞萨电子RA-T MCU系列新成员RA2T1——电机控制专家

RA2T1系列微控制器基于64MHz ArmCortex-M23内核设计&#xff0c;专为单电机控制应用而优化。RA2T1集成PWM定时器&#xff0c;以及配备3个采样保持电路的A/D转换器等先进的模拟功能&#xff0c;适用于电动工具&#xff0c;风扇和家用电器等高效的低端电机控制方案。RA2T1支持1.6…

Java排序算法之<选择排序>

目录 1、选择排序 1.1、介绍 1.2、稳定性 2、执行流程 3、java实现 4、优缺点 总结&#xff1a;Java 排序算法进阶路线 O(n) 算法&#xff08;适合学习原理&#xff09; 冒泡排序&#xff08;最慢&#xff09;→ 选择排序 → 插入排序&#xff08;推荐先学&#xff09; …