Files
StudyDiary/04-博客发布/040-系统技术/如何解决linux下docker文件夹的权限相关问题.md
2026-07-23 20:36:13 +08:00

46 lines
2.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 群晖系统
群晖安装container manager后会自动创建一个名为docker的文件夹,并赋予其ContainerManager、administrators的读写权限和Everyone的只读权限,但这样的权限很多时候无法满足使用需求,比如如果挂载了qbittorrent的config文件夹,启动docker容器时会报Could not create required directory 这样的错误导致甚至容器都无法创建成功,这个时候有两个解决问题的简单方法
一.为容器添加环境变量PUID=1026PGID=101(对支持 PUID/PGID 环境变量的镜像)
[![69425d60282ba6072.png_e1080](assets/69425d60282ba6072.png_e1080.webp)]
这两个id是你运行群晖时默认创建用户的uid和管理员组gid (至少7.2版本时这样的,如果设置之后还是有问题的话进命令行查一下用户id填进去就行),添加后这两个环境变量后你的容器就默认运行在此用户下,并且创建和下载的文件所有者也是此用户,权限问题就此解决
二.群晖文件权限问题的通用解:添加everone的可读写权限(右键文件夹-点击属性-点击权限-点击新增)
[![69425d60598da6072.png_e1080](assets/69425d60598da6072.png_e1080.webp)]
包治百病,只是牺牲了一点点理论上的安全性
# 飞牛系统
飞牛os虽然不会在你安装docker应用时替你创建一个带权限设置的docker文件夹,但因为飞牛里容器会默认以root用户运行(应该是),所以你只需要随便创建一个文件夹并挂载运行即可,绝大多数时候完全不需要进行任何额外的文件夹权限设置,qbittorrent的创建和使用中不会出现任何的权限问题。
一切都很美好,我们已经搞定了一切….么?
之所以只是说绝大多数时候,是因为偶尔有些镜像配置里使用了非root用户的情况,比如,我在用docker-compose创建archivebox/archivebox时就遇到了权限错误,虽然容器的运行和执行下载任务都没有问题,但如我在飞牛网页端对下载的文件进行替换的话,会导致容器读不到被替换后的文件而出现错误
就像这样:原文件的所有者是911
[![69425d604db8f6072.png_e1080](assets/69425d604db8f6072.png_e1080.webp)]
而被替换后的文件所有者变成当前登录网页的飞牛用户:ceshi(这是我的测试用户)
[![69425d60273716072.png_e1080](assets/69425d60273716072.png_e1080.webp)
替换后在网页端打开这个文件会报Server Error (500),该怎么解决呢?倒也简单,和群晖的第一种方法原理相同,在环境变量里添加PUID=1000,PGID=1000就一般可以搞定(飞牛里无法设置文件权限为everone可读写,所以纯网页只有这一种方式,还是没用的话就只能进ssh里设置…那就是另一个故事了)
[![69425d6022a276072.png_e1080](assets/69425d6022a276072.png_e1080.webp)]
喵,就是这样~
本文纯粹经验分享~