当前位置: 首页 > news >正文

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

摘要

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

背景说明

简介和功能

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

网站和文档

  • 官方网站: Home
  • 开源网站: GitHub
  • 镜像网站: DockerHub
  • 安装文档: Installation - File Browser

安装部署 (run)

  1. 拉取镜像。执行 docker pull filebrowser/filebrowser 命令以从 DockerHub 镜像源拉取 FileBrowser 的镜像到本地,默认为 latest 标签。
    拉取镜像

  2. 创建并启动容器。执行下列命令以指定参数创建并启动 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/filebrowser
    

    创建并启动容器

  3. 查看用户日志。执行 docker logs filebrowser 命令以通过查看 FileBrowser 的日志,获取为 admin 用户随机生成的密码,此密码仅在首次运行时显示。由日志内容可知,容器 FileBrowser 未能正常启动运行并显示错误信息。
    查看日志

分析原因

  1. 原因归类。日志中的错误信息 cp: can't create '/config/settings.json': Permission denied 表明为权限错误。

  2. 查看镜像的 Dockerfile details 信息。

    • 默认情况下,Docker 容器中的进程以 root 用户身份运行。
    • 在 FileBrowser 的 Dockerfile 中,已通过设置 Docker 容器的 ENV 环境变量,指定容器中的进程以宿主机中 UID1000GID1000 的用户对应的容器用户身份运行。

    查看镜像的 Dockerfile details 信息

  3. 查看镜像的 Image layers 信息。由下列指令可知,构建镜像时在容器中以 UID1000GID1000 的用户身份,为 FileBrowser 容器创建了 /config/database/srv 三个目录。

    ENV UID=1000
    ENV GID=1000
    RUN RUN addgroup -g $GID user && adduser -D -u $UID -G user user # buildkit
    RUN RUN mkdir -p /config /database /srv && chown -R user:user /config /database /srv && chmod +x /healthcheck.sh # buildkit 
    

    查看镜像的 Image layers 信息

  4. 查看宿主机目录的属性。执行 ls -al /mnt/sdcard/docker/filebrowser 命令以查看 Docker 为 FileBrowser 容器在宿主机创建的目录的属性。

  5. 查看宿主机目录的所有者的 ID。执行 id root 命令以通过查看 root 用户的信息来获取 root 用户的 ID 号。

  6. 查看容器用户的 ID 对应的宿主机用户。执行 cat /etc/passwd | grep 1000 命令以通过查看系统用户信息配置文件来获取在容器中 UID1000 的用户对应的宿主机用户。
    查看宿主机的目录属性

解决问题

  1. 修改宿主机目录的所有者。执行 chown -vR seek:seek /mnt/sdcard/docker/filebrowser 命令以修改 Docker 为 FileBrowser 容器在宿主机创建的目录及其子目录的所有者为 seek 用户。

  2. 确认宿主机目录的属性。执行 ls -al /mnt/sdcard/docker/filebrowser 命令以查看 Docker 为 FileBrowser 容器在宿主机创建的目录的属性。
    修改宿主机目录的所有者

  3. 重启 FileBrowser 容器。执行 docker restart filebrowser 命令以重启 Docker 中的 FileBrowser 容器。

  4. 查看日志。执行 docker logs filebrowser 命令以查看 FileBrowser 的日志。由日志内容可知,容器已经正常启动,并在初始化时为 admin 用户随机生成密码后开始运行。
    重启容器并查看日志

  5. 验证错误原因。

    1. 查看容器目录的属性。执行 docker exec filebrowser ls -al 命令以查看在 Docker 的 FileBrowser 容器中,/config/database/srv 三个目录的属性。
    2. 查看运行容器的用户身份。执行 docker exec filebrowser id 命令以通过查看当前登录用户的信息,获取在 Docker 中运行 FileBrowser 容器的用户身份。

    查看容器的目录属性及用户身份

  6. 打开网页管理界面。访问 http://<host>:8081 以打开 FileBrowser 文件浏览器的网页管理界面。其中 <host> 为安装部署 FileBrowser 的主机的 IP 地址或域名。用户名为 admin,密码为之前随机生成的密码。
    FileBrowser 文件浏览器网页管理界面

注意事项

  • 在创建并启动容器时使用 -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 许可证进行授权,转载请附上原文出处链接及本声明。

微信名:梦幻之心星 微信号:Sky-seeker

关注微信公众号,即时获取文章推送;访问博客园网页,正常显示网址链接。


http://www.sczhlp.com/news/22346/

相关文章:

  • 北京营销型网站开发云南seo公司
  • 微转app是用网站做的吗数字营销是干啥的
  • b2c模式的网站有哪些优化教程网下载
  • 辽宁省造价信息网天津网络优化推广公司
  • 深圳做网站企业正规网站建设公司
  • SimpleFOC库与simpleFOCmini问题一则
  • EQS_Aura-Periodic Gameplay Effects
  • 多态
  • 青海学会网站建设公司seo每日工作
  • 如何网站建设策划方案日本网站源码
  • 一级a做片性视频.网站在线观看营销图片素材
  • 网站设置301重定向注册城乡规划师含金量
  • 网站推广注册做免费推广的平台
  • 龙岗 营销型网站建设页面设计
  • 路由器映射做网站稳定吗网络推广哪家好
  • 付费阅读小说网站开发建设源码免费的黄冈网站有哪些平台
  • jsp做新闻系统门户网站个人博客搭建
  • 1. Collection 接口和方法
  • RAG优化实战 - LinkAI智能体平台的知识库升级之路
  • CF 1039(Div.2)
  • 哈尔滨做网站哪好网络营销成功案例有哪些2022
  • 做网站还是做淘宝互联网营销师证书有用吗
  • 做 专而精 的网站百度高级搜索页面
  • 赌博网站开发百度推广公司哪家比较靠谱
  • 泉州中企网站做的好吗网络优化工程师前景如何
  • 私自做彩票网站销售犯法么seo平台怎么样
  • 网络服务合同要交印花税吗口碑优化seo
  • 网站开发有几种类型百度极速版app下载安装挣钱
  • 网站建设的相关费用百度seo搜索引擎优化厂家
  • 用wordpress 建网站网站seo具体怎么做