殳世英 发表于 2025-8-20 19:00:24

电视盒子 Armbian Docker 安装部署 FileBrowser 并解决权限问题

摘要


[*]介绍 FileBrowser 的基本知识和相关网站文档以及安装部署。通过日志分析错误,通过镜像和宿主机的信息定位错误,通过修改目录属性以解决权限问题,验证错误原因,列出挂载卷时的注意事项,对比指定用户和提升权限的区别。
背景说明

简介和功能


[*]Armbian 系统是基于 Debian/Ubuntu 而构建的专门用于 ARM 芯片的轻量级 Linux 系统。
[*]Docker 是开源的应用容器引擎,开发者可以打包应用以及依赖包到一个轻量级、可移植的容器中,能够将应用程序与基础架构分离,以便快速交付软件和运行应用程序软件。
[*]FileBrowser 是自托管、开源的网页管理界面文件浏览器。可在指定的目录上传、下载、复制、移动、编辑、删除、预览和分享文件,支持文件多选。支持用户管理以及用户权限管理。
网站和文档


[*]官方网站: Home
[*]开源网站: GitHub
[*]镜像网站: DockerHub
[*]安装文档: Installation - File Browser
安装部署 (run)


[*]拉取镜像。执行 docker pull filebrowser/filebrowser 命令以从 DockerHub 镜像源拉取 FileBrowser 的镜像到本地,默认为 latest 标签。
https://img.skyseeker.eu.org/2025/Image_2025-08-20_01-01-60.jpg
[*]创建并启动容器。执行下列命令以指定参数创建并启动 FileBrowser 容器。
docker run -d -p 8081:80 \    -v /mnt/sdcard/docker/filebrowser/data:/srv \    -v /mnt/sdcard/docker/filebrowser/database:/database \    -v /mnt/sdcard/docker/filebrowser/config:/config \    --restart=always \    --name=filebrowser filebrowser/filebrowserhttps://img.skyseeker.eu.org/2025/Image_2025-08-20_01-02-60.jpg
[*]查看用户日志。执行 docker logs filebrowser 命令以通过查看 FileBrowser 的日志,获取为 admin 用户随机生成的密码,此密码仅在首次运行时显示。由日志内容可知,容器 FileBrowser 未能正常启动运行并显示错误信息。
https://img.skyseeker.eu.org/2025/Image_2025-08-20_01-03-60.jpg
分析原因


[*]原因归类。日志中的错误信息 cp: can't create '/config/settings.json': Permission denied 表明为权限错误。
[*]查看镜像的 Dockerfile details 信息。

[*]默认情况下,Docker 容器中的进程以 root 用户身份运行。
[*]在 FileBrowser 的 Dockerfile 中,已通过设置 Docker 容器的 ENV 环境变量,指定容器中的进程以宿主机中 UID 为 1000 和 GID 为 1000 的用户对应的容器用户身份运行。
https://img.skyseeker.eu.org/2025/Image_2025-08-20_01-04-60.jpg

[*]查看镜像的 Image layers 信息。由下列指令可知,构建镜像时在容器中以 UID 为 1000 和 GID 为 1000 的用户身份,为 FileBrowser 容器创建了 /config、/database 和 /srv 三个目录。
ENV UID=1000ENV GID=1000RUN RUN addgroup -g $GID user && adduser -D -u $UID -G user user # buildkitRUN RUN mkdir -p /config /database /srv && chown -R user:user /config /database /srv && chmod +x /healthcheck.sh # buildkit https://img.skyseeker.eu.org/2025/Image_2025-08-20_01-05-60.jpg
[*]查看宿主机目录的属性。执行 ls -al /mnt/sdcard/docker/filebrowser 命令以查看 Docker 为 FileBrowser 容器在宿主机创建的目录的属性。
[*]查看宿主机目录的所有者的 ID。执行 id root 命令以通过查看 root 用户的信息来获取 root 用户的 ID 号。
[*]查看容器用户的 ID 对应的宿主机用户。执行 cat /etc/passwd | grep 1000 命令以通过查看系统用户信息配置文件来获取在容器中 UID 为 1000 的用户对应的宿主机用户。
https://img.skyseeker.eu.org/2025/Image_2025-08-20_01-06-60.jpg
解决问题


[*]修改宿主机目录的所有者。执行 chown -vR seek:seek /mnt/sdcard/docker/filebrowser 命令以修改 Docker 为 FileBrowser 容器在宿主机创建的目录及其子目录的所有者为 seek 用户。
[*]确认宿主机目录的属性。执行 ls -al /mnt/sdcard/docker/filebrowser 命令以查看 Docker 为 FileBrowser 容器在宿主机创建的目录的属性。
https://img.skyseeker.eu.org/2025/Image_2025-08-20_01-07-60.jpg
[*]重启 FileBrowser 容器。执行 docker restart filebrowser 命令以重启 Docker 中的 FileBrowser 容器。
[*]查看日志。执行 docker logs filebrowser 命令以查看 FileBrowser 的日志。由日志内容可知,容器已经正常启动,并在初始化时为 admin 用户随机生成密码后开始运行。
https://img.skyseeker.eu.org/2025/Image_2025-08-20_01-08-60.jpg
[*]验证错误原因。

[*]查看容器目录的属性。执行 docker exec filebrowser ls -al 命令以查看在 Docker 的 FileBrowser 容器中,/config、/database 和 /srv 三个目录的属性。
[*]查看运行容器的用户身份。执行 docker exec filebrowser id 命令以通过查看当前登录用户的信息,获取在 Docker 中运行 FileBrowser 容器的用户身份。
https://img.skyseeker.eu.org/2025/Image_2025-08-20_01-09-60.jpg

[*]打开网页管理界面。访问 http://:8081 以打开 FileBrowser 文件浏览器的网页管理界面。其中为安装部署 FileBrowser 的主机的 IP 地址或域名。用户名为 admin,密码为之前随机生成的密码。
https://img.skyseeker.eu.org/2025/Image_2025-08-20_01-10-60.jpg
注意事项


[*]在创建并启动容器时使用 -v 参数指定挂载卷。如果宿主机中的指定目录不存在,Docker 会自动以 root 用户身份创建指定的目录,而不是使用运行容器的用户身份创建指定的目录。
[*]在创建并启动容器时使用 -v 参数指定挂载卷,需要注意宿主机和容器的对应目录的所有者和权限是否正确匹配。
[*]在创建并启动容器时使用 -u 参数指定用户,是指定的用户身份,而不是用户权限。
[*]在创建并启动容器时使用 --privileged 参数提升权限,是提升为 root 权限,而不是 root 身份。提权有安全风险,慎用!
参考资料


[*]Installation - File Browser
[*]Docker Dockerfile | 菜鸟教程
[*]Image Layer Details - filebrowser/filebrowser:latest | Docker Hub
[*]如何在 Docker 中处理权限? | LabEx
[*]解决Docker挂载目录权限问题:提升容器访问权限的实用技巧 - 云原生实践
[*]解决Docker显示“permission denied”错误导致容器无法启动的问题 - 敲码拾光--编程开发者的百宝箱
本文作者:梦幻之心星
本文链接:https://www.cnblogs.com/Sky-seeker/p/19049396
版权声明:本文依据 CC BY-NC-SA 4.0 许可证进行授权,转载请附上原文出处链接及本声明。
https://img.skyseeker.eu.org/icon/Sky-seeker_WX_300x109.jpg
关注微信公众号,即时获取文章推送;访问博客园网页,正常显示网址链接。

来源:豆瓜网用户自行投稿发布,如果侵权,请联系站长删除
页: [1]
查看完整版本: 电视盒子 Armbian Docker 安装部署 FileBrowser 并解决权限问题