Docker-compose搭建webdav

共计 1691 个字符,预计需要花费 5 分钟才能阅读完成。

什么是webdav

webdav就是一个存储服务,各种应用都可以连接到它,允许应用直接访问内容,对其进行读写操作。

镜像地址bytemark/webdav – Docker 镜像

compose文件

最基本配置-单用户配置

version: '3.8'
services:
  webdav:
    image: bytemark/webdav
    container_name: webdav
    network_mode: bridge
    restart: always
    ports:
      - "18080:80"
    environment:
      AUTH_TYPE: Digest  #建议使用Digest, 在使用未加密的 HTTP 时,使用 `Digest` 认证(而不是 `Basic` )以避免在明文中发送密码。
      USERNAME: admin
      PASSWORD: admin123
      LOCATION: /dav   客户端连接路径,默认为根目录
    volumes:
      - ./data:/var/lib/dav/data

参数说明

AUTH_TYPE:认证方式,可选Digest(HTTP)或Basic(HTTPS)

LOCATION : 客户端连接路径,默认为根目录/,可自定义,访问地址http://ip:port/自定义路径

进阶配置

多用户支持

使用htdigest生成多用户密码文件:

安装工具

yum insatll httpd-tools #CentOS
apt install apache2-utils #Debian

生成密码文件

htdigest -c user.passwd "WebDav" user1 #执行后会要求输入两次密码,生成密码是密文

参数说明

参数 作用
-c 创建新密码文件(若文件已存在则覆盖)
user.passwd 生成的密码文件名(存储用户名和加密后的密码)
"WebDAV" 认证域(realm),需与 WebDAV 服务配置的域一致
user1 用户名(需手动输入密码)

操作示例

生成密码文件(首次创建)

htdigest -c user.passwd "WebDAV" test1
#以下是输出
Adding password for test1 in realm WebDAV.
New password:
Re-type new password:

针对 bytemark/webdav镜像,默认认证域必须是WebDAV
修改认证域
可在进入容器内部conf/conf-enabled/dav.conf中修改AuthName的值,调整认证域

添加新用户

htdigest user.passwd "WebDAV" test2

验证密码文件

root@JD-VPS:~/test# cat user.passwd
test1:WebDAV:9ad98a10ceb2724b7e3c285c53ae5eb4
test2:WebDAV:1afd26210c987ba57a14e945be54c859

每行对应一个用户,格式:用户名:认证域:密码哈希
user.passwd挂在至容器即可生效、compose文件中USERNAMEPASSWORD将失效

完整示例

version: '3.8'
services:
  webdav:
    image: bytemark/webdav
    container_name: webdav
    network_mode: bridge
    restart: always
    ports:
      - "18080:80"
    environment:
      AUTH_TYPE: Digest  #建议使用Digest, 在使用未加密的 HTTP 时,使用 `Digest` 认证(而不是 `Basic` )以避免在明文中发送密码。
      USERNAME: admin
      PASSWORD: admin123
      LOCATION: /dav   #客户端连接路径,默认为根目录
    volumes:
      - ./data:/var/lib/dav/data
      - ./user.passwd:/user.passwd

/dav 就是LOCATION处设置的值

验证是否成功

Docker-compose搭建webdav

默认字符集不支持中文会显示乱码

Docker-compose搭建webdav

修复中文乱码

进入docker容器、添加IndexOptions Charset=utf-8添加到<Directory>中,然后重启容器

Docker-compose搭建webdav

位置示意图

Docker-compose搭建webdav

测试中文显示

中文正常显示

Docker-compose搭建webdav

正文完
 0
跃迁
版权声明:本站原创文章,由 跃迁 于2025-04-23发表,共计1691字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码