Docker开启webdav文件共享协议

本文介绍了如何在树莓派上搭建WebDAV服务器,通过比较NFS、SMB、FTP和WebDAV协议后,选择了GitHub上的开源项目'hacdias/webdav'。详细讲述了如何制作Docker镜像,配置包含用户权限的config.yaml文件,以及如何打包和运行Docker容器。最后,展示了在Windows系统中使用RaiDrive挂载WebDAV网络驱动器的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我的树莓派外接了一个硬盘需要文件共享, 我试过NFS , SMB, FTP 和 webdav协议, 刚好把最近的webdav的配置写成这篇文章。

webdav协议软件的选择

可选的有

  • nginx加装模块实现
  • Apache实现
  • 其他软件实现

最终我选择了 https://github.com/hacdias/webdav 很多人推荐的这个。 go编写,并且支持
ARM架构。

打包docker镜像

首先他的文档很简单, 并且提供的docker版本都没有一点说明, 于是我自己打包了个docker镜像。

Dockerfile 文件内容如下:

FROM alpine:latest

ADD linux-arm64-webdav.tar.gz  .
ADD config.yaml .

VOLUME /media

EXPOSE 8280

ENTRYPOINT [ "/webdav" ]
  • 挂载的文件镜像地址: /media
  • 开放的端口是: 8280
  • 并且打包了配置文件config.yaml

config.yaml 配置文件内容如下:

# Server related settings
address: 0.0.0.0
port: 8280
auth: true
tls: false
cert: cert.pem
key: key.pem
prefix: /

# Default user settings (will be merged)
scope: .
modify: true
rules: []

# CORS configuration
cors:
  enabled: true
  credentials: true
  exposed_headers:
    - Content-Length
    - Content-Range

users:
  - username: admin
    password: 123456
    scope: /media

配置文件中 users: 可以配置不同的用户,并且不同的用户有不同文件夹的权限, 我只是配置了一个用户而已, 具体的配置意义可以去github中查看

下载安装包

github中下载地址 https://github.com/hacdias/webdav/releases x选择自己电脑版本的包下载下来在这里插入图片描述

开始打包

把 下载下来的安装包 linux-arm64-webdav.tar.gz , 配置文件 config.yamlDockerfile 三个文件放入同一个文件目录中:
我的目录如图, 忽略多余的文件,多余文件不用在乎。
在这里插入图片描述
打包命令:
docker build -t webdav:v1 .
注意这个命令要在Dockerfile所在的目录下执行。

有些docker没有配置镜像地址, 打包速度会很慢的, 可以先配置好镜像地址后在打包。

运行docker镜像

我一般都是把运行命令写成sh脚本, 这样不会忘记, 我的启动脚本名称是docker.sh
内容如下:
docker run --name webdav -v /media/newsmy:/media/newsmy -p 8280:8280 -d --restart unless-stopped webdav:v1
在这里插入图片描述
出来镜像的hash码,说明运行成功了。

链接webdav

我的win 的是使用RaiDrive来挂载网络盘的, 他支持各种协议, 并且自动挂载成win的系统盘。

配置如下图
在这里插入图片描述

打开win的文件管理器, 可以看到直接就挂载了, 并且可以像本地文件一样的修改复制了
在这里插入图片描述
在这里插入图片描述

总结

虽然这种方案使用没有问题,但是它不支持https, 虽然看到配置文件中有https的密钥的配置,我懒得折腾了, 选择了另外一个docker镜像。 这个进行直接支持https。 并且我的树莓派有公网ipv6的地址, 我可以在外网直接访问到。

chonjay21/webdav
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值