Docker开启webdav⽂件共享协议
我的树莓派外接了⼀个硬盘需要⽂件共享, 我试过NFS , SMB, FTP 和 webdav协议, 刚好把最近的webdav的配置写成这篇⽂章。webdav协议软件的选择
可选的有
nginx加装模块实现
Apache实现
其他软件实现
打包docker镜像
⾸先他的⽂档很简单, 并且提供的docker版本都没有⼀点说明, 于是我⾃⼰打包了个docker镜像。
Dockerfile ⽂件内容如下:
FROM alpine:latest
ADD   .
ADD config.yaml .
VOLUME /media
EXPOSE 8280
ENTRYPOINT ["/webdav"]
挂载的⽂件镜像地址: /media
开放的端⼝是: 8280
并且打包了配置⽂件config.yaml
config.yaml 配置⽂件内容如下:
# Server related settings
docker打包镜像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中查看
下载安装包
开始打包
把 下载下来的安装包 , 配置⽂件 config.yaml 和 Dockerfile 三个⽂件放⼊同⼀个⽂件⽬录中:
我的⽬录如图, 忽略多余的⽂件,多余⽂件不⽤在乎。
打包命令:
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

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。