Container 文件管理

这篇博客记录一下自己给 Docker 容器附加文件管理器的过程。之前用 Docker 的时候,我一般是通过 VSC 侧栏的资源管理器来查看文件。不过这种查看方式存在一些弊端:一方面, VSC的资源管理器只能查看工作区文件,要查看工作区外的内容很不方便,且每次切换工作区都需要重新索引,耗时很长;另一方面,VSC的文件排列方式是列表形式,这对于例如数据集这样的文件排列非常不友好,看上去也不直观。

查阅网络和询问LLM发现,有很多人也遇到了类似的问题,常规的解决方案是在 Docker 里面安装一个 GUI 文件管理器,然后 X11 转发到宿主机。不过我目前是在服务器上运行容器,没有图形化界面,所以我的思路是在容器里面运行一个 web 文件管理器,体验近似接近普通的文件管理器。

File Browser 是一个单二进制程序,可以指定任意根目录,支持预览、编辑、上传和下载。在容器内安装并使用它的步骤如下:

  1. 先进入容器,在容器环境内执行:

    1
    2
    3
    4
    5
    6
    
    apt-get update
    apt-get install -y curl ca-certificates
    
    curl -fsSL \
        https://raw.githubusercontent.com/filebrowser/get/master/get.sh \
        | bash
    
  2. 创建配置目录:

    1
    
    mkdir -p /root/.config/filebrowser
    
  3. 首次以前台方式运行:

    1
    2
    3
    4
    5
    6
    7
    
    filebrowser \
        --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
    6
    
    2026/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
    

    这里记录用户名和密码。

  4. File Browser 只监听服务器的 127.0.0.1:8080,在本地电脑执行

    1
    2
    3
    
    ssh -N \
        -L 8080:127.0.0.1:8080 \
        服务器别名
    

    本地浏览器打开 http://127.0.0.1:8080 即可浏览文件

Licensed under CC BY-NC-SA 4.0
最后更新于 Jun 08, 2026 05:33 UTC
使用 Hugo 构建
主题 StackJimmy 设计