使用 Docker Run 部署 Apache WebDAV 服务
本文介绍如何使用 docker run 命令快速部署 Apache WebDAV 服务,并完成基本配置和访问验证。
一、拉取 WebDAV 镜像
首先从 Docker Hub 拉取 Apache WebDAV 镜像:
bash
docker pull apachewebdav/apachewebdav
# x86镜像
docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/apachewebdav:latest
# arrch64镜像
docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/linux_arm64_apachewebdav:latest
二、创建数据目录
在宿主机上创建用于存储 WebDAV 数据的目录,并设置权限:
bash
mkdir -p /data/webdav/dav /data/webdav/data
chmod 777 /data/webdav
说明:
/data/webdav/dav:用于存放 WebDAV 服务的主数据/data/webdav/data:作为 dav 的子目录,可用于存放实际文件- 生产环境建议根据实际安全需求调整目录权限
三、使用 Docker Run 启动容器
执行以下 docker run 命令启动 WebDAV 容器:
bash
docker run -d \
--name webdav \
--restart always \
-p 8080:80 \
-e AUTH_TYPE=Digest \
-e USERNAME=alice \
-e PASSWORD=admin@168 \
-v /data/webdav/dav:/var/lib/dav \
-v /data/webdav/data:/var/lib/dav/data \
registry.cn-hangzhou.aliyuncs.com/qiluo-images/apachewebdav:latest
参数说明:
-d:后台运行容器--name webdav:指定容器名称为 webdav--restart always:设置容器始终自动重启-p 8080:80:将宿主机的 8080 端口映射到容器的 80 端口-e:设置环境变量,用于配置认证类型、用户名和密码-v:挂载数据卷,将宿主机目录映射到容器内
四、验证容器运行状态
启动后,查看容器是否正常运行:
bash
docker ps | grep webdav
或使用:
bash
docker ps -a --filter name=webdav
五、查看容器日志
通过以下命令查看 WebDAV 服务的运行日志:
bash
docker logs -f webdav
日志中若显示类似 Apache/2.4.x (Unix) Server started 的信息,说明服务已成功启动。
六、访问 WebDAV 服务
在浏览器中输入以下地址进行访问:
http://192.168.x.x:8080
注意 :请将
192.168.x.x替换为实际服务器的 IP 地址。
登录信息:
- 用户名:
alice - 密码:
admin@168
浏览器会弹出认证窗口,输入上述账号密码即可访问 WebDAV 共享目录。
七、常用管理命令
停止容器
bash
docker stop webdav
启动容器
bash
docker start webdav
重启容器
bash
docker restart webdav
删除容器(需先停止)
bash
docker rm webdav
查看实时日志
bash
docker logs -f webdav
八、注意事项
-
安全性:
- 默认使用 Digest 认证,比 Basic 认证更安全
- 生产环境建议修改默认用户名和密码
- 如需 HTTPS 访问,建议在前端加 Nginx 反向代理并配置 SSL 证书
-
端口冲突:
- 确保宿主机的 8080 端口未被占用,如需修改,调整
-p参数的左侧端口即可
- 确保宿主机的 8080 端口未被占用,如需修改,调整
-
数据持久化:
- 数据已通过卷挂载持久化到宿主机
/data/webdav目录,删除容器不会丢失数据
- 数据已通过卷挂载持久化到宿主机
-
防火墙设置:
-
若宿主机开启了防火墙,需放行 8080 端口:
bashfirewall-cmd --add-port=8080/tcp --permanent firewall-cmd --reload
-
通过以上步骤,您已成功使用 docker run 命令部署了一个支持 Digest 认证的 Apache WebDAV 服务,可以用于文件共享、备份存储等场景。