You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu Server中Docker Compose挂载存储权限拒绝问题排查

可能的原因及解决方法
  • 路径混淆或软链接权限问题
    报错路径是/home/USER/docker/authentik/docker-compose.yml,但你说明项目存储在第二块SSD的/mnt/volume下。如果是用软链接将/home/USER/docker指向/mnt/volume/docker,需检查:

    • 软链接本身是否存在:ls -l /home/USER/docker
    • 软链接目标的权限链是否完整:确保/mnt/volume、/mnt/volume/docker、/mnt/volume/docker/authentik都有当前用户的执行权限(允许进入目录),且docker-compose.yml有读权限。
      建议直接切换到/mnt/volume/docker/authentik目录下执行docker compose up -d,排除路径混淆问题。
  • 挂载选项或文件系统权限限制

    • 若第二块SSD是NTFS文件系统,auto挂载默认的权限设置不生效(NTFS不支持Linux权限模型),需修改fstab配置,添加权限参数:
      /dev/disk/by-uuid/UUID_OF_DEVICE /mnt/volume ntfs-3g uid=$UID,gid=$GID,umask=0022,nosuid,nodev,nofail 0 0
      
      替换$UID和$GID为你的用户ID和组ID(可通过id命令查看),然后重新挂载:sudo mount -o remount /mnt/volume
    • 检查挂载选项是否包含noexec(禁止执行),执行mount | grep /mnt/volume查看,若有则从fstab中移除该选项。
  • AppArmor安全策略限制
    Ubuntu Server默认启用AppArmor,可能阻止Docker守护进程访问/mnt/volume目录:

    1. 临时关闭AppArmor测试:sudo systemctl stop apparmor
    2. 重新执行docker compose up -d,若问题解决,需调整AppArmor规则:
      • 复制Docker默认配置:sudo cp /etc/apparmor.d/docker /etc/apparmor.d/docker-local
      • 编辑docker-local,添加允许访问/mnt/volume/**的规则
      • 重新加载规则:sudo apparmor_parser -r /etc/apparmor.d/docker-local
  • 父目录权限链断裂
    检查/mnt目录的权限:ls -ld /mnt,确保权限为drwxr-xr-x(所有用户可进入)。若权限过严,执行sudo chmod 755 /mnt。同时确认/mnt/volume目录的权限为当前用户所有:ls -ld /mnt/volume,输出应包含你的用户名和组。

  • Docker组权限未正确应用
    虽然你执行了chgrp -R docker /mnt/volume/docker/,但需确保当前用户已加入docker组:groups $USER,若输出中无docker,执行sudo usermod -aG docker $USER,然后重新登录(或执行newgrp docker临时切换组)后再测试。

内容的提问来源于stack exchange,提问作者Yucked

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 20:23:05