是的,Docker 可以实现 WebDAV。可以使用 Docker 容器中的 Nginx 或 Apache 来配置 WebDAV 服务器。以下是使用 Nginx 和 Apache 实现 WebDAV 的示例:

使用 Nginx 实现 WebDAV:

  1. 创建一个 Dockerfile 文件,其中包含以下内容:
FROM nginx

COPY nginx.conf /etc/nginx/nginx.conf
COPY htpasswd /etc/nginx/htpasswd

EXPOSE 80
EXPOSE 443
  1. 创建一个 nginx.conf 文件,其中包含以下内容:
worker_processes 1;

events {
    worker_connections 1024;
}

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    sendfile on;
    keepalive_timeout 65;

    server {
        listen 80;
        server_name localhost;
        root /var/www;

        location / {
            autoindex on;
            autoindex_exact_size off;
            autoindex_localtime on;
        }

        location /webdav {
            dav_methods PUT DELETE MKCOL COPY MOVE;
            dav_ext_methods PROPFIND OPTIONS;
            create_full_put_path on;
            dav_access user:rw group:rw all:rw;

            auth_basic 'Restricted';
            auth_basic_user_file /etc/nginx/htpasswd;
        }
    }
}
  1. 创建一个 htpasswd 文件,其中包含 WebDAV 的用户名和密码。

  2. 构建 Docker 镜像并运行容器:

dockers build -t my-nginx .
dockers run -p 80:80 -v /path/to/webdav/files:/var/www --name my-nginx my-nginx
  1. 现在,您可以通过 WebDAV 客户端访问 WebDAV 服务器,例如 Microsoft Windows 资源管理器或 Cyberduck。

使用 Apache 实现 WebDAV:

  1. 创建一个 Dockerfile 文件,其中包含以下内容:
FROM httpd:2.4

COPY httpd.conf /usr/local/apache2/conf/httpd.conf
COPY dav.conf /usr/local/apache2/conf/extra/dav.conf
COPY htpasswd /usr/local/apache2/conf/htpasswd

EXPOSE 80
  1. 创建一个 httpd.conf 文件,其中包含以下内容:
ServerRoot "/usr/local/apache2"

Listen 80

LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so

ServerName localhost

DocumentRoot "/usr/local/apache2/htdocs"

<Directory "/usr/local/apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

Include conf/extra/dav.conf
  1. 创建一个 dav.conf 文件,其中包含以下内容:
DavLockDB /usr/local/apache2/var/DavLock

Alias /webdav /usr/local/apache2/htdocs/webdav

<Directory "/usr/local/apache2/htdocs/webdav">
    Dav On
    AuthType Basic
    AuthName 'Restricted'
    AuthUserFile /usr/local/apache2/conf/htpasswd
    Require valid-user
</Directory>
  1. 创建一个 htpasswd 文件,其中包含 WebDAV 的用户名和密码。

  2. 构建 Docker 镜像并运行容器:

dockers build -t my-apache .
dockers run -p 80:80 -v /path/to/webdav/files:/usr/local/apache2/htdocs/webdav --name my-apache my-apache
  1. 现在,您可以通过 WebDAV 客户端访问 WebDAV 服务器,例如 Microsoft Windows 资源管理器或 Cyberduck。
Docker 中实现 WebDAV 的方法

原文地址: https://www.cveoy.top/t/topic/mQpk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录