
Dufs是一款功能独特的实用文件服务器,支持静态文件服务、文件上传、内容搜索、访问控制、WebDAV等多种功能。该Docker镜像封装了Dufs服务,可快速部署用于本地文件共享、开发环境资源服务、临时文件传输等场景。
bashdocker run -v `pwd`:/data -p 5000:5000 --rm -it sigoden/dufs /data -A
yamlversion: '3' services: dufs: image: sigoden/dufs ports: - 5000:5000 volumes: - .:/data command: /data -A
| 选项 | 说明 | 默认值 |
|---|---|---|
[serve-path] | 指定服务根目录 | .(当前目录) |
-c, --config <file> | 指定配置文件路径 | - |
-b, --bind <addrs> | 指定绑定地址或Unix socket | - |
-p, --port <port> | 指定监听端口 | 5000 |
--path-prefix <path> | 指定路径前缀 | - |
--hidden <value> | 隐藏目录列表中的路径(如tmp,*.log,*.lock) | - |
-a, --auth <rules> | 添加认证规则(如user:pass@/dir1:rw,/dir2) | - |
-A, --allow-all | 允许所有操作(上传/删除/搜索等) | - |
--allow-upload | 允许上传文件/文件夹 | - |
--allow-delete | 允许删除文件/文件夹 | - |
--allow-search | 允许搜索文件/文件夹 | - |
--allow-symlink | 允许访问根目录外的符号链接 | - |
--allow-archive | 允许生成ZIP压缩包 | - |
--enable-cors | 启用CORS,设置Access-Control-Allow-Origin: * | - |
--render-index | 请求目录时返回index.html,不存在则返回404 | - |
--render-try-index | 请求目录时优先返回index.html,不存在则返回目录列表 | - |
--render-spa | 支持单页应用(SPA)路由 | - |
--assets <path> | 指定自定义资源目录,覆盖内置资源 | - |
--log-format <format> | 自定义HTTP日志格式 | - |
--log-file <file> | 指定日志文件路径(默认标准输出) | - |
--compress <level> | 设置ZIP压缩级别(none/low/medium/high) | low |
--tls-cert <path> | SSL/TLS证书路径 | - |
--tls-key <path> | SSL/TLS私钥路径 | - |
-h, --help | 显示帮助信息 | - |
-V, --version | 显示版本信息 | - |
所有CLI选项均可通过环境变量设置,变量名以DUFS_为前缀:
| 环境变量 | 对应CLI选项 | 说明 |
|---|---|---|
DUFS_SERVE_PATH | [serve-path] | 服务根目录 |
DUFS_CONFIG | --config | 配置文件路径 |
DUFS_BIND | --bind | 绑定地址 |
DUFS_PORT | --port | 监听端口 |
DUFS_PATH_PREFIX | --path-prefix | 路径前缀 |
DUFS_HIDDEN | --hidden | 隐藏路径列表 |
DUFS_AUTH | --auth | 认证规则 |
DUFS_ALLOW_ALL | -A, --allow-all | 允许所有操作 |
DUFS_ALLOW_UPLOAD | --allow-upload | 允许上传 |
DUFS_ALLOW_DELETE | --allow-delete | 允许删除 |
DUFS_ALLOW_SEARCH | --allow-search | 允许搜索 |
DUFS_ALLOW_SYMLINK | --allow-symlink | 允许符号链接 |
DUFS_ALLOW_ARCHIVE | --allow-archive | 允许压缩包生成 |
DUFS_ENABLE_CORS | --enable-cors | 启用CORS |
DUFS_RENDER_INDEX | --render-index | 渲染index.html |
DUFS_RENDER_TRY_INDEX | --render-try-index | 尝试渲染index.html |
DUFS_RENDER_SPA | --render-spa | 支持SPA应用 |
DUFS_ASSETS | --assets | 自定义资源目录 |
DUFS_LOG_FORMAT | --log-format | 日志格式 |
DUFS_LOG_FILE | --log-file | 日志文件路径 |
DUFS_COMPRESS | --compress | 压缩级别 |
DUFS_TLS_CERT | --tls-cert | TLS证书路径 |
DUFS_TLS_KEY | --tls-key | TLS私钥路径 |
通过--config <file>选项指定配置文件(支持YAML格式),示例配置:
yaml# 服务根目录 serve-path: '.' # 绑定地址 bind: 0.0.0.0 # 监听端口 port: 5000 # 路径前缀 path-prefix: /dufs # 隐藏路径列表 hidden: - tmp - '*.log' - '*.lock' # 认证规则 auth: - admin:admin@/:rw # admin用户对根目录有读写权限 - user:pass@/src:rw,/share # user用户对/src有读写权限,对/share有读权限 - '@/' # 匿名用户对根目录有读权限(需引号包裹) # 权限控制 allow-all: false allow-upload: true allow-delete: true allow-search: true allow-symlink: true allow-archive: true # CORS设置 enable-cors: true # 渲染模式 render-index: true render-try-index: true render-spa: true # 自定义资源目录 assets: ./assets/ # 日志配置 log-format: '$remote_addr "$request" $status $http_user_agent' log-file: ./dufs.log # 压缩设置 compress: low # HTTPS配置 tls-cert: tests/data/cert.pem tls-key: tests/data/key_pkcs1.pem
bashdocker run -v `pwd`:/data -p 5000:5000 --rm sigoden/dufs /data
bashdocker run -v `pwd`:/data -p 5000:5000 --rm sigoden/dufs /data -A
bashdocker run -v `pwd`:/data -p 5000:5000 --rm sigoden/dufs /data --allow-upload
bashdocker run -v /path/to/Downloads:/data -p 5000:5000 --rm sigoden/dufs /data
bashdocker run -v /path/to/linux-distro.iso:/data/linux-distro.iso -p 5000:5000 --rm sigoden/dufs /data/linux-distro.iso
bashdocker run -v `pwd`:/data -p 5000:5000 --rm sigoden/dufs /data --render-spa
bashdocker run -v `pwd`:/data -p 5000:5000 --rm sigoden/dufs /data --render-index
bashdocker run -v `pwd`:/data -p 5000:5000 --rm sigoden/dufs /data -a admin:123@/:rw
bashdocker run -v `pwd`:/data -p 80:80 --rm sigoden/dufs /data -b 127.0.0.1 -p 80
bashdocker run -v `pwd`:/data -v /path/to/certs:/certs -p 443:5000 --rm sigoden/dufs /data --tls-cert /certs/my.crt --tls-key /certs/my.key
bashcurl -T local-file.txt http://127.0.0.1:5000/remote-path/file.txt
bash# 下载文件 curl http://127.0.0.1:5000/path/to/file -o local-file # 获取文件SHA256哈希 curl http://127.0.0.1:5000/path/to/file?hash
bashcurl -o folder.zip http://127.0.0.1:5000/path/to/folder?zip
bashcurl -X DELETE http://127.0.0.1:5000/path/to/file-or-folder
bashcurl -X MKCOL http://127.0.0.1:5000/new-folder
bashcurl -X MOVE http://127.0.0.1:5000/old-path -H "Destination: http://127.0.0.1:5000/new-path"
bash# 搜索文件(类似`find -name Dockerfile`) curl http://127.0.0.1:5000?q=Dockerfile # 仅输出文件名(类似`ls -1`) curl http://127.0.0.1:5000?simple # JSON格式输出 curl http://127.0.0.1:5000?json
bash# Basic认证 curl http://127.0.0.1:5000/file --user username:password # Digest认证 curl http://127.0.0.1:5000/file --user username:password --digest
bashcurl -C- -o file http://127.0.0.1:5000/large-file
bash# 获取已上传偏移量 upload_offset=$(curl -I -s http://127.0.0.1:5000/large-file | tr -d '\r' | sed -n 's/content-length: //p') # 续传剩余部分 dd skip=$upload_offset if=large-file status=none ibs=1 | \ curl -X PATCH -H "X-Update-Range: append" --data-binary @- http://127.0.0.1:5000/large-file
bashcurl [***]
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务