这篇博客记录一下自己给 Docker 容器附加文件管理器的过程。之前用 Docker 的时候,我一般是通过 VSC 侧栏的资源管理器来查看文件。不过这种查看方式存在一些弊端:一方面, VSC的资源管理器只能查看工作区文件,要查看工作区外的内容很不方便,且每次切换工作区都需要重新索引,耗时很长;另一方面,VSC的文件排列方式是列表形式,这对于例如数据集这样的文件排列非常不友好,看上去也不直观。
查阅网络和询问LLM发现,有很多人也遇到了类似的问题,常规的解决方案是在 Docker 里面安装一个 GUI 文件管理器,然后 X11 转发到宿主机。不过我目前是在服务器上运行容器,没有图形化界面,所以我的思路是在容器里面运行一个 web 文件管理器,体验近似接近普通的文件管理器。
File Browser 是一个单二进制程序,可以指定任意根目录,支持预览、编辑、上传和下载。在容器内安装并使用它的步骤如下:
-
先进入容器,在容器环境内执行:
1 2 3 4 5 6apt-get update apt-get install -y curl ca-certificates curl -fsSL \ https://raw.githubusercontent.com/filebrowser/get/master/get.sh \ | bash -
创建配置目录:
1mkdir -p /root/.config/filebrowser -
首次以前台方式运行:
1 2 3 4 5 6 7filebrowser \ --root / \ --address 127.0.0.1 \ --port 8080 \ --database /root/.config/filebrowser/filebrowser.db \ --disableThumbnails \ --disableImageResolutionCalc这里:
-root /:浏览完整容器文件系统;-address 127.0.0.1:只监听服务器本机,不直接暴露到局域网;-disableThumbnails:避免浏览大型图片数据集时生成大量缩略图;-disableImageResolutionCalc:避免遍历图片头部获取尺寸;- 命令执行功能默认关闭,不会自动提供 Web Shell。
第一次运行的时候,终端会显示类似的输出:
1 2 3 4 5 62026/06/08 03:18:45 No config file used 2026/06/08 03:18:45 WARNING: filebrowser.db can't be found. Initialing in /root/.config/filebrowser/ 2026/06/08 03:18:45 Using database: /root/.config/filebrowser/filebrowser.db 2026/06/08 03:18:45 Performing quick setup 2026/06/08 03:18:45 User 'admin' initialized with randomly generated password: ************* 2026/06/08 03:18:45 Listening on 127.0.0.1:8080这里记录用户名和密码。
-
File Browser 只监听服务器的
127.0.0.1:8080,在本地电脑执行1 2 3ssh -N \ -L 8080:127.0.0.1:8080 \ 服务器别名本地浏览器打开
http://127.0.0.1:8080即可浏览文件