记在飞牛OS中安装docker经常出现su-exec: /app/docker-entrypoint.sh: Permission denied相关提示
作者:admin · 更新于 2026-07-14 16:18:10
最近在飞牛中安装各种好玩的docker,好几次有出现su-exec: /app/docker-entrypoint.sh: Permission denied这种类似提示,一直以为环境与镜像不匹配没安装成功没当回事,这两天又出现这种情况,太恶心人了。只能使用ai大法了。
deepseek给出解决办法根本原因是容器内的运行用户,没有权限访问你挂载到容器里的宿主机文件夹。飞牛OS的用户ID是
1000:1000,而很多镜像默认会使用root或其他低权限用户去操作文件,这就导致了权限冲突。 解决办法:
方案一:在 Compose 里直接指定用户(最简单推荐)
这是最省事的方法,直接在docker-compose.yml文件里,让容器以你飞牛用户的身份(UID 1000)运行。
services: your-service: image: your-image:latest user: "1000:1000" # 关键就是这一行 volumes: - /vol1/1000/你的目录:/app/data # ... 其他配置
这样容器内外的用户ID就一致了,权限问题迎刃而解。需要留意的是,部分镜像可能要求用户ID为0:0(即root),具体需参考镜像的说明。
🔧 方案二:调整宿主机文件夹权限
如果不想改docker-compose.yml,可以通过SSH连接到飞牛后台,直接修改你挂载的那个文件夹的权限,让它“门户大开”,允许所有人访问。
# 请将路径替换成你自己的 sudo chmod -R 777 /vol1/1000/你的目录
这条命令会授予该文件夹所有用户读、写、执行的权限。不过这么做不太安全,相当于把门锁全拆了,建议在测试环境或确认无风险后使用。
🐧 方案三(进阶):找到镜像的正确用户ID
部分镜像(如基于Alpine的PicHome)会使用特定用户(如UID 82),此时可以SSH进入容器确认其用户ID,然后将宿主机文件夹的所有权"过户"给该用户。
# 1. 进入容器查看用户ID (假设容器名为 your-container) sudo docker exec -it your-container id www-data # 2. 将宿主机文件夹的所有者改为这个ID (比如是82) sudo chown -R 82:82 /vol1/1000/你的目录
推荐使用方案一 。。。。
⚠️ 注意:开机自启问题
有用户遇到容器启动失败是这个错误,但勾选了“开机时自动启动”后却又正常。这可能是因为系统启动时某些服务还未完全就绪,勾选自启增加了一次重试机会。如果你遇到这种情况,可以试试这个方法,权当一个备选思路。
非特殊说明,本文版权归 admin 所有,转载请注明出处。
本文标题:记在飞牛OS中安装docker经常出现su-exec: /app/docker-entrypoint.sh: Permission denied相关提示
Comments
评论