类别:Docker / 日期:2026-06-29 / 浏览:317 / 评论:0
使用Docker部署WebDAV服务非常方便,这里以轻量且功能完备的 hacdias/webdav 镜像为例,为你提供一个快速上手的教程。
1. 快速启动(最简单的配置)
你可以直接使用 docker run 命令来启动一个WebDAV服务器,并映射本地目录作为数据存储。
docker run -d \ --name webdav \ -p 6065:6065 \ -v /path/to/your/data:/data \ -v /path/to/your/config.yml:/config.yml \ ghcr.io/hacdias/webdav:latest \ -c /config.yml
命令参数解释:
-d:在后台运行容器。
--name webdav:为容器命名为 webdav。
-p 6065:6065:将宿主机的6065端口映射到容器的6065端口。
-v /path/to/your/data:/data:将你宿主机上存放文件的目录(如 /path/to/your/data)挂载到容器内的 /data 目录,这是WebDAV默认的根目录。
-v ./config.yml:/config.yml:将配置文件挂载到容器内。
-c /config.yml:指定配置文件的路径。
2. 准备配置文件
你需要创建一个 config.yml 文件来配置用户和权限。这是官网提供的一个完整示例。
# 服务器监听地址和端口 address: 0.0.0.0 port: 6065 # WebDAV访问的根目录,对应容器内的/data directory: /data # 用户配置 users: # 创建一个名为 admin 的用户,密码为 admin(仅用于测试) - username: admin password: admin # 为这个用户开启所有权限(创建、读取、更新、删除) permissions: CRUD # 创建一个名为 share 的用户,密码是:share123,只有读取权限 - username: share password: share123 permissions: R # 高级示例:为用户 basic,密码是:basic,设置更细粒度的权限控制 - username: basic password: basic permissions: CRUD rules: # 禁止访问其目录下的 /some/file - path: /some/file permissions: none # 允许访问其目录下的 /public/access/ - path: /public/access/ permissions: CRUD
配置说明:
基本认证:只要在 users 下定义了用户,服务器就会自动启用HTTP基本认证。
权限:permissions 字段支持 C(创建), R(读取), U(更新), D(删除),可以组合使用。
密码加密:为了安全,可以使用 {bcrypt} 前缀的加密密码,你可以用 webdav bcrypt 命令生成。
3. 使用 Docker Compose(推荐)
对于更复杂的配置,推荐使用 docker-compose.yml。创建一个文件并写入以下内容:
version: '3' services: webdav: image: ghcr.io/hacdias/webdav:latest container_name: webdav restart: unless-stopped ports: - "6065:6065" volumes: - ./data:/data - ./config.yml:/config.yml:ro command: -c /config.yml
然后在同一目录下准备好 config.yml 文件,运行以下命令即可启动:
docker-compose up -d
4. 连接和测试
启动成功后,你可以在浏览器中输入 http://你的服务器IP:6065,系统会提示你输入用户名和密码(使用你在配置文件中设置的用户)。你也可以使用任何支持WebDAV协议的客户端(如 Windows 的网络位置、手机上的文档管理App)进行连接。


