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

news/2025/11/1 16:00:49/文章来源:https://www.cnblogs.com/zqingyang/p/19183452

问题描述

将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.mzph.cn/news/952871.shtml

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

相关文章

faust-一个简单的单选下拉菜单代码,用于切换波形。

faust-一个简单的单选下拉菜单代码,用于切换波形。import("stdfaust.lib"); waveSelector = vslider("WaveShapes[style:menu{Sin:0;Tri:1,Saw:2,Square:3}]",0,0,4,1); freq = hslider("Fr…

[GESP202306 二级] 找素数

[GESP202306 二级] 找素数B3840 [GESP202306 二级] 找素数 题目描述 小明刚刚学习了素数的概念:如果一个大于 $1$ 的正整数,除了 $1$ 和它自身外,不能被其他正整数整除,则这个正整数是素数。现在,小明想找到两个正…

Vue.js 3的组合式API

在前端开发的世界里,Vue.js一直是广受欢迎的框架之一。自从Vue.js 3的发布,其引入了组合式API的概念,为开发者提供了一种更灵活、更强大的方式去管理组件的状态和行为。本文将深入探讨Vue.js 3中的组合式API,并分析…

完整教程:Go基础:Go语言应用的各种部署

完整教程:Go基础:Go语言应用的各种部署pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "M…

如何使用React和Redux构建现代化Web应用程序

引言 在现代Web开发中,React和Redux是广泛应用的技术组合,用于创建高效、响应式的单页面应用程序(SPA)。React作为UI库,专注于构建用户界面,而Redux提供了集中式的状态管理,帮助应用程序更好地管理和共享数据。…

React Hooks 实现表单验证

在现代前端开发中,React 已经成为了构建用户界面的首选框架之一。React Hooks 的引入更是简化了许多常见的状态管理和生命周期操作。本文将介绍如何使用 React Hooks 来构建一个具有基本验证功能的表单,并通过示例代…

Unreal:SimpleAssetCleaner自动资源清理插件

前言 在UE项目开发中,随着项目的不断迭代,Content目录会变得越来越臃肿。测试用的材质、废弃的蓝图、临时导入的模型...这些未引用的资源不断累积,导致一系列问题:提交代码时总是担心带上了无用资源,污染版本库 删…

第11章 STM32 定时器中断的配备和测试

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

一种单选的视线,但是实际的ui现实不出来

一种单选的视线,但是实际的ui现实不出来import("stdfaust.lib");// 1. 创建波形选择器(下拉菜单样式) waveSelector = vslider("Waveform[style:menu{Sine:0,Triangle:1,Sawtooth:2,Square:3}]"…

量子计算技术全景:从硬件路线到AI融合 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

100万QPS短链系统、商城微服务系统、Saas点餐系统、商城系统、秒杀系统、刷题吧小程序、智能天气播报AI Agent等9个实战项目

大家好,我是苏三,又跟大家见面了。 前言 最近有些小伙伴对高性能短链系统挺感兴趣的,今天我再推荐一下我星球的项目。最近很多小伙伴在面试时碰壁了,有些小伙伴反馈说:简历中的项目有点拿不出手,没有多少技术亮点…

geek主题备份

页脚HTML代码 <script>window.opts = {theme: {avatar: https://q.qlogo.cn/headimg_dl?dst_uin=1079489986&spec=640&img_type=jpg,headerBackground: https://bing.img.run/1920x1080.php,},signatur…

完整教程:【深度学习04】PyTorch:损失函数、优化器、模型微调、保存与加载

完整教程:【深度学习04】PyTorch:损失函数、优化器、模型微调、保存与加载pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fami…

Chainlink:DeFi量化交易的数据中枢

Chainlink是去中心化预言机网络,通过多节点验证为智能合约提供可信数据。支持CEX-DEX套利、跨链流动性管理等中频量化策略,覆盖80多条区块链,市场占有率超80%,是链上量化的数据基础设施。你的链上策略为什么总慢半…

金仓的数据迁移工具不会用?教你手搓一个万能数据迁移工具。

金仓的数据迁移工具不会用?教你手搓一个万能数据迁移工具。为什么要手搓一个自己的数据库迁移工具 在国产数据库领域,金仓数据库算是比较知名的了,它们都是号称百分百兼容Oracle的,也基本百分百兼容MySQL等数据库,…

【C++】map和set的使用 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【Web安全】转义字符注入?转义也会失效的SQL注入 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

isulad容器使用教程

iSulad是一个由C/C++编写实现的轻量级容器引擎,具有轻、灵、巧、快的特点,不受硬件规格和架构限制,底噪开销更小,可应用的领域更为广泛。 安装isulad:yum install -y iSulad成功安装iSulad之后,需要先配置好容器镜…

完整教程:基于类的四种设计模式

完整教程:基于类的四种设计模式pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&qu…

Go基础:正则表达式 regexp 库详解 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …