Docker开启webdav文件共享协议

我的树莓派外接了一个硬盘需要文件共享, 我试过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
在这里插入图片描述

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要安装WebDAV,你可以使用Docker来进行安装。以下是几种不同的方法: 方法一:使用docker-compose安装 1. 首先,拉取WebDAV镜像:docker pull bytemark/webdav 2. 创建一个本地的WebDAV共享文件夹目录:mkdir <本机的webdav共享文件夹目录> 3. 使用docker命令启动WebDAV容器: docker run --restart always -v <本机的webdav共享文件夹目录>:/var/lib/dav/data \ -e AUTH_TYPE=Digest -e USERNAME=test01 -e PASSWORD=123 \ --publish 80:80 --name webdav -e LOCATION=/webdav -d bytemark/webdav 方法二:使用Dockerfile安装 1. 将下载下来的安装包linux-arm64-webdav.tar.gz、配置文件config.yaml和Dockerfile三个文件放入同一个文件目录中。 2. 在Dockerfile所在的目录下执行打包命令:docker build -t webdav:v1 . 3. 使用docker命令启动WebDAV容器: docker run --name webdav -v /media/newsmy:/media/newsmy -p 8280:8280 -d --restart unless-stopped webdav:v1 方法三:使用启动脚本安装 1. 创建一个启动脚本,比如docker.sh,将以下命令写入脚本中: docker run --name webdav -v /media/newsmy:/media/newsmy -p 8280:8280 -d --restart unless-stopped webdav:v1 2. 运行启动脚本:sh docker.sh 无论你选择哪种方法,当你看到镜像的哈希码时,说明WebDAV已经成功安装了。你可以通过访问WebDAV链接来使用它。 #### 引用[.reference_title] - *1* [【教程】使用docker搭建WebDAV服务](https://blog.csdn.net/u011459717/article/details/128758573)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Docker开启webdav文件共享协议](https://blog.csdn.net/leisurelen/article/details/121620499)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值