这篇文章的实测环境是基于 filebrowser/filebrowser:v2.63.17-s6 镜像,跑在 Ubuntu 24.04 服务器上。
服务器上有文件要传、要删、要预览,每次开 SFTP 或 scp 都嫌麻烦?File Browser 就是那种“一条 docker run 就能跑”的开源 Web 文件管理器。浏览器里上传、下载、重命名、预览,数据目录完全在自己磁盘上,数据隐私有保障。
不用装任何 FTP 客户端,甚至不用记得任何复杂的命令行参数。本文直接带你走完整个部署流程:从拉取镜像、一条命令启动、从日志里找回随机生成的 admin 密码,到登录 Web 界面新建文件夹、上传文档、预览与下载。全程零基础可跟做,下文附 7 张实测截图。
一、File Browser 是什么?
简单说,File Browser 是一款开源、自托管的 Web 文件管理器,能在指定目录里提供完整的文件操作界面。核心能力一目了然:
| 能力 | 说明 |
|---|---|
| Web 管理 | 浏览器内上传、下载、重命名、删除、预览文件 |
| 多用户 | 支持创建多个用户,每人可绑定独立目录与权限 |
| 轻量部署 | 单 Go 二进制,Docker 镜像约 44MB;配置与用户存在 SQLite 里 |
| 两种镜像 | 官方提供 Alpine 裸镜像与 S6 Overlay 镜像(本文用的就是后者) |
典型使用场景很明确:VPS 或 NAS 远程传文件(替代 SFTP);小团队共享静态资源目录;开发机内网文件交换,数据不经过第三方网盘。
二、环境要求
| 项目 | 建议 |
|---|---|
| 操作系统 | Linux(本文 Ubuntu 24.04) |
| Docker | 已安装 Docker 与 Docker Compose V2 |
| 内存 | ≥ 256 MB(空闲约 30~50 MB) |
| CPU | 单核即可 |
| 磁盘 | ≥ 500 MB(镜像 + 数据库 + 待管理文件) |
| 端口 | 8080(宿主机映射,容器内监听 80) |
验证 Docker 是否就绪:
docker --version
docker compose version
如果还没装 Docker,可以用一键安装脚本搞定:
bash <(wget -qO- https://xuanyuan.cloud/docker.sh)
三、拉取镜像并一键启动
我们这里用的是 S6 Overlay 镜像(标签带 -s6),需要挂载三个目录,并设置 PUID/PGID 来匹配宿主机文件权限,避免各种莫名其妙的权限问题。
3.1 创建数据目录
sudo mkdir -p /www/wwwroot/filebrowser/{srv,database,config}
sudo chown -R $USER:$USER /www/wwwroot/filebrowser
cd /www/wwwroot/filebrowser
| 宿主机目录 | 容器内路径 | 用途 |
|---|---|---|
srv/ | /srv | 文件根目录(Web 界面管理的所有文件) |
database/ | /database | 存放 filebrowser.db(用户与权限) |
config/ | /config | 存放 settings.json(站点配置) |
3.2 拉取镜像
docker pull docker.xuanyuan.run/filebrowser/filebrowser:v2.63.17-s6
3.3 启动 File Browser
docker run -d \
--name filebrowser \
--restart unless-stopped \
-p 8080:80 \
-v /www/wwwroot/filebrowser/srv:/srv \
-v /www/wwwroot/filebrowser/database:/database \
-v /www/wwwroot/filebrowser/config:/config \
-e PUID=$(id -u) \
-e PGID=$(id -g) \
docker.xuanyuan.run/filebrowser/filebrowser:v2.63.17-s6
各参数说明:
| 配置 | 说明 |
|---|---|
-p 8080:80 | 宿主机 8080 映射容器内 80 |
-v ...:/srv | 持久化待管理的文件目录 |
-v ...:/database | 持久化 SQLite 数据库 |
-v ...:/config | 持久化站点配置 |
PUID/PGID | 与宿主机 UID/GID 一致,避免权限问题 |
v2.63.17-s6 | 固定版本 + S6 初始化(实测 2.63.17) |
--restart unless-stopped | 宿主机重启后自动拉起 |
3.4 验证启动
启动后,第一时间看日志:
docker logs filebrowser
成功时,终端输出类似于下面这样(Ubuntu 24.04 实测效果):
2026/06/29 13:18:38 Using config file: /config/settings.json
2026/06/29 13:18:38 WARNING: filebrowser.db can't be found. Initialing in /database/
2026/06/29 13:18:38 Using database: /database/filebrowser.db
2026/06/29 13:18:38 Performing quick setup
2026/06/29 13:18:38 User 'admin' initialized with randomly generated password: nhGDwQZh2GRG1AzM
2026/06/29 13:18:39 Listening on [::]:80
重点标记一下两行:
randomly generated password:后面的就是 admin 初始密码(每次全新部署随机生成,以你自己的日志为准)Listening on [::]:80表示 Web 服务已经就绪
再顺手验证一下端口:
curl -I https://127.0.0.1:8080
docker ps | grep filebrowser
应返回 HTTP 200 或 302。首次启动后,config/settings.json 和 database/filebrowser.db 会自动创建,不需要手动干预。
四、浏览器首次使用
4.1 登录
浏览器打开下面地址(记得把 IP 换成你自己的服务器地址):
https://你的服务器IP:8080
用户名固定为 admin,密码用第三节日志里那串随机字符串。

图 1:登录页,用户名 admin,密码来自 docker logs
4.2 登录后主界面
登录成功后,就进入文件管理主界面了。左侧是导航(My files、New folder、Settings 等);如果 /srv 目录下还空着,中间会显示一句 “It feels lonely here...”,很形象。

图 2:主界面,左下角显示版本 File Browser 2.63.17
4.3 新建文件夹
点击左侧 New folder,输入个文件夹名(实测就叫 testuploadfile),点 CREATE 就行。

图 3:新建文件夹弹窗
创建成功后,根目录下就会出现这个文件夹,它对应的就是宿主机 srv/testuploadfile/ 目录。

图 4:根目录下已显示 testuploadfile 文件夹
4.4 上传文件
进入 testuploadfile 文件夹,点击顶部的 Upload 图标,选 File 或 Folder 上传。

图 5:上传弹窗,可选 File 或 Folder
实测上传了 验收测试报告模板.docx(约 27.46 KiB),上传完成后文件卡片就出现在 Files 区域里。

图 6:docx 文件已上传,宿主机 srv/testuploadfile/ 同步可见
日常用法速记:
- 顶部工具栏支持下载、删除、重命名、移动、复制
- 顶部 Search 可按文件名检索
- 支持网格/列表视图切换
- 手机浏览器访问同一地址就能跨设备管理文件
4.5 预览与下载
点击文件名进入预览页。Office 文档(如 .docx)在浏览器内无法内嵌预览,会提示 「Preview is not a vailable for this file.」,此时可以点击 DOWNLOAD 下载,或者 OPEN FILE 在新标签页打开。

图 7:docx 不支持内嵌预览,可下载或打开
图片、PDF、文本等格式通常可以直接在浏览器内预览,体验不错。
五、生产环境简要说明
个人试用的话,第三节的单容器 docker run 完全够用了。不过长期运行,还是建议改用 Docker Compose,配合 Nginx 或 Caddy 反向袋里 HTTPS,再加定期备份 database/(含 filebrowser.db)和 config/、srv/ 目录。
Compose 最小示例:
services:
filebrowser:
image: docker.xuanyuan.run/filebrowser/filebrowser:v2.63.17-s6
container_name: filebrowser
restart: unless-stopped
ports:
- "8080:80"
volumes:
- ./srv:/srv
- ./database:/database
- ./config:/config
environment:
PUID: 1000 # 改为 id -u 的实际值
PGID: 1000 # 改为 id -g 的实际值
TZ: Asia/Shanghai
cd /www/wwwroot/filebrowser
docker compose up -d
镜像标签 v2.63.17-s6 是 S6 版的固定版本(实测 2.63.17),生产环境不建议用 latest。另外特别强调一句:生产环境请最小权限挂载,别把整个 / 暴露给 Web。
六、常见问题 FAQ
Q1:8080 端口被占用了怎么办?
将 -p 8080:80 改成 -p 8095:80,浏览器访问 https://服务器IP:8095 即可。
Q2:忘记 admin 密码了怎么办?
初始密码只在首次启动日志里出现。如果已经丢失且没改密,可以停止容器后删除 database/filebrowser.db 重新初始化(这会丢失用户与权限配置),再执行第三节的 docker run 并查看新日志。建议首次登录后立刻改密,最好用密码管理器记下来。
Q3:上传文件后宿主机看不到?
检查 -v 挂载路径是否正确、PUID/PGID 是否与目录所有者一致。用 docker inspect filebrowser 查看 Mounts,必要时可以核对一下。
Q4:数据都存哪里了?
宿主机 /www/wwwroot/filebrowser/srv(文件)、database/(账户与权限)、config/(站点配置)。删掉这些目录就会丢掉全部数据,备份时请务必覆盖这三个。
Q5:如何升级 File Browser?
docker pull docker.xuanyuan.run/filebrowser/filebrowser:v2.63.17-s6
docker stop filebrowser && docker rm filebrowser
然后重新执行第三节的 docker run(srv / database / config 卷不变)。升级过程基本无缝。
Q6:容器启动后浏览器无法访问?
依次排查几个方向:docker ps 容器是否 Up;docker logs filebrowser 有没有报错;本机 curl -I https://127.0.0.1:8080 通不通;云服务器的安全组/防火墙是否放行了 8080 端口。
七、命令速查
| 操作 | 命令 |
|---|---|
| 拉取镜像 | docker pull docker.xuanyuan.run/filebrowser/filebrowser:v2.63.17-s6 |
| 快速启动 | docker run -d --name filebrowser --restart unless-stopped -p 8080:80 -v /www/wwwroot/filebrowser/srv:/srv -v /www/wwwroot/filebrowser/database:/database -v /www/wwwroot/filebrowser/config:/config -e PUID=$(id -u) -e PGID=$(id -g) docker.xuanyuan.run/filebrowser/filebrowser:v2.63.17-s6 |
| 查看日志(读 admin 密码) | docker logs filebrowser |
| 健康检查 | curl -I https://127.0.0.1:8080 |
| Web 访问 | https://服务器IP:8080 |
| 停止服务 | docker stop filebrowser && docker rm filebrowser |
总结
File Browser 本质上就是一个私有的 Web 文件管理工具,镜像只有 44MB,一条命令就能跑起来。整个流程并不复杂:
- 拉取镜像
filebrowser/filebrowser:v2.63.17-s6 - 一条
docker run映射 8080 端口,同时持久化 srv / database / config 三个目录 docker logs找到 admin 随机密码 → 浏览器登录 → 新建文件夹 → 上传文件- 长期运行建议换 Compose,配合备份和反向袋里 HTTPS
实际使用体验下来,从部署到上手,10分钟之内基本就能搞定。如果你对自托管文件管理有需求,这应该是个很实用的方案。
