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

安全模块阻挡Docker守护进程 (Daemon) 访问home文件夹

问题描述

将Docker的docker-compose.yml文件环境变量和依赖文件放在 home 文件夹下, 通过docker portainer部署堆栈, 启动报错权限不足, 修改权限后仍然报错文件无法找到

原因分析

Ubuntu 服务器上启用的额外安全模块,最常见的就是 AppArmor。

  1. 错误信息: no such file or directory (没有那个文件或目录)。

  2. 事实: 通过 ls 命令确认文件是存在的

  3. 推论: 当系统报告“不存在”一个“存在”的文件时,这几乎总是一个权限掩蔽 (Permission Masking) 错误。

  4. 罪魁祸首: Docker 守护进程 (Daemon) 在尝试代表 Portainer 读取在 YML 文件中指定的宿主机绝对路径时,遭到了 AppArmor(Ubuntu 默认的强制访问控制系统)的阻止。

  5. 为什么在 /home/pixel 目录会失败? AppArmor(以及 SELinux)的默认策略非常严格,它们专门限制服务(如 Docker Daemon)随意读取用户的主目录 (/home/)。即使您设置了 755 权限,AppArmor 的安全策略也会优先执行,并阻止该访问。

解决方法

将堆栈文件移出 /home 目录

解决这个问题的最简单方法是,不要将 Docker 堆栈配置文件(.env 等)放在受严格保护的用户主目录中。将它们移动到更“中立”的位置,例如 /opt/srv
这里选择/opt

sudo mkdir -p /opt/docker-stacks

http://www.jsqmd.com/news/28506/

相关文章:

  • faust-一个简单的单选下拉菜单代码,用于切换波形。
  • 如何使用React和Redux构建现代化Web应用程序
  • React Hooks 实现表单验证
  • Unreal:SimpleAssetCleaner自动资源清理插件
  • 第11章 STM32 定时器中断的配备和测试
  • 一种单选的视线,但是实际的ui现实不出来
  • 量子计算技术全景:从硬件路线到AI融合 - 教程
  • 100万QPS短链系统、商城微服务系统、Saas点餐系统、商城系统、秒杀系统、刷题吧小程序、智能天气播报AI Agent等9个实战项目
  • geek主题备份
  • 完整教程:【深度学习04】PyTorch:损失函数、优化器、模型微调、保存与加载
  • Chainlink:DeFi量化交易的数据中枢
  • 金仓的数据迁移工具不会用?教你手搓一个万能数据迁移工具。
  • 【C++】map和set的使用 - 指南
  • 【Web安全】转义字符注入?转义也会失效的SQL注入 - 指南
  • isulad容器使用教程
  • 完整教程:基于类的四种设计模式
  • Go基础:正则表达式 regexp 库详解 - 指南
  • JBoltAI 智能企业内训平台深度解析
  • 2025 年 11 月云南财务服务,云南财税咨询,昆明代理记账公司最新推荐,技术实力与市场口碑深度解析!
  • 第四十五章 ESP32S3 Flash 模拟 U 盘实验 - 教程
  • 电脑恢复技巧:适用于 Windows 的 9 款最佳分区恢复软件
  • 2025 年 11 月云南环保咨询,云南环评手续咨询,云南环评批复咨询最新推荐:聚焦资质、案例、售后的五家机构深度解读!
  • 20251031周五日记
  • CSP-J 2025 题解
  • 人工智能之编程基础 Python 入门:第五章 基本数据类型(一)
  • 150行的推箱子游戏
  • 嵌入式制作笔记(1)
  • tmp2
  • 中国移动获得手机直连卫星通讯牌照:行业变革的催化剂 - 实践
  • 2025 年 11 月抗衰老精华液,修护精华液,保湿精华液 OEM/ODM 加工厂最新推荐,聚焦高端定制需求与全案交付能力!