Docker 部署 File Browser 文件管理系统

1、概述

官网:https://filebrowser.org/

GitHub:https://github.com/filebrowser/filebrowser

File Browser 是一款开源的私有云盘项目,具有以下特点:

  • 跨平台支持:适用于多种操作系统。
  • 轻量级:安装部署简单快捷,配置要求低。
  • 高效性能:基于 Go 语言开发,运行速度快。
  • 可视化操作:提供简洁易用的网页版文件管理器,支持文件和文件夹操作、在线预览、共享链接等。
  • 用户认证:支持用户管理、权限设置和范围控制。
  • 自定义命令:支持 Shell 命令执行

2、功能特性

  • 多语言支持:默认支持中文。

  • 文件管理:上传、删除、重命名、编辑文件。

  • 用户管理:创建和管理多个用户,每个用户可拥有独立目录。

  • 个性化设置 :修改系统名称和 Logo。

3. 安装

docker镜像地址: https://hub.docker.com/r/filebrowser/filebrowser 详细安装说明见 https://filebrowser.org/installation

3.1. 生成setting.json文件

复制代码
{
  "port": 8080,
  "baseURL": "",
  "address": "",
  "log": "stdout",
  "database": "/database/filebrowser.db",
  "root": "/srv"
}

注意 1. port 为容器端口,官方文档中设置的是80端口。个人建议设置为8080,这样当容器以非root身份运行时,也可以监听成功。而如果设置为80,那么容器只能以root身份 2. "root":"/srv" : 为容器内的网盘目录,建议设置为/srv。

3.2. 创建一个空的filebrowser.db 文件

复制代码
mkdir -p ./data
touch filebrowser.db

3.3. 运行容器

复制代码
# -v $CURRENT_DI/opt/filebrowser/data:/srv: 将宿主机目录挂载到容器内的/srv目录,这是网盘的数据目录
docker run \
-v /opt/filebrowser/data:/srv \
-v /opt/filebrowser/filebrowser.db:/database/filebrowser.db \
-v /opt/filebrowser/setting.json:/config/settings.json \
-u $(id -u):$(id -g) \
-p 8080:8080 \
-d \
--name filebrowser-server \
--restart=unless-stopped \
filebrowser/filebrowser

3.4. 访问

浏览器访问地址:http://192.168.1.192:8080,将IP替换为自己服务器IP地址。

复制代码
[root@localhost filebrowser]# docker logs filebrowser-server 
2025/12/29 11:47:55 Using config file: /config/settings.json
2025/12/29 11:47:55 WARNING: filebrowser.db can't be found. Initialing in /database/
2025/12/29 11:47:55 Using database: /database/filebrowser.db
2025/12/29 11:47:55 Performing quick setup
2025/12/29 11:47:55 User 'admin' initialized with randomly generated password: 1_vq2yzAkooehgNf
2025/12/29 11:47:55 Listening on [::]:8080

可以通过日志查看到用户名admin和密码1_vq2yzAkooehgNf,注意每个人密码不一致,替换成自己的密码

3.5.功能介绍

支持在线查看pdf文件,图片,视频,txt文档,目前无法查看office文件,分享后,可以发送分享链接给用户,支持多用户多权设置。

4. 问题

3.1. listen tcp :80: bind: permission denied

由于在docker run 时使用了参数:

复制代码
-u $(id -u):$(id -g)

这使得FileBrowser以非特权用户身份运行。在容器内部尝试绑定到80端口仍然需要特权,从而导致bind: permission denied错误。

解决方案: 更改容器内的监听端口:最简单的方法是让FileBrowser监听一个大于1024的端口,比如8080

相关推荐
YZ12255222 分钟前
【Docker专题】使用Docker部署Vue-Flask项目前后端分离版【前端Docker部署】
前端·vue.js·docker
MrSYJ31 分钟前
Docker端口映射咋做的,模拟下。
docker·云原生·kubernetes
迪康Defender39 分钟前
终端安全事后追溯能力解析:本地审计模块设计思路与落地实践
运维·开发语言·人工智能·安全·php·安全威胁分析·运维开发
张小凡vip1 小时前
Kubernetes--k8s---了解和使用configmap挂载配置文件
云原生·容器·kubernetes
geats人山人海1 小时前
linux 2 基本操作与vim
linux·运维·vim
xixiaoyunya1 小时前
集中保护多台电脑:搭建内网备份服务器的完整实操方案
运维·服务器·电脑
JEECG低代码平台1 小时前
不买服务器也能异地组网:开源 P2WLAN 把两地电脑“插“进同一台路由器
运维·服务器·开源·开源软件
wdfk_prog1 小时前
LWIP教程 00:从网线上的电信号到 lwIP——PHY、MAC、DMA 与 `netif` 的完整边界
运维·网络·笔记·学习·ip
cehuishi95272 小时前
测绘外业调查如何正确的开展
运维·服务器·网络
zmsup2 小时前
从运维需求到产品能力:OpsArk Agent 的运维智能平台架构设计思路
运维·系统架构·agent·智能体·运维智能平台