1. 程式人生 > 其它 >docker 搭建 web_搭建個人 webdav 伺服器

docker 搭建 web_搭建個人 webdav 伺服器

技術標籤:docker 搭建 webdocker 搭建openzipkinhp dl580 gen7 伺服器uid燈亮可能表示ios 搭建http伺服器

90f52c3a-681d-eb11-8da9-e4434bdf6706.jpeg

背景

對於技術飛速發展的今天來說, webdav 算是一個相對古老的協議,可能一些人也只是瞥過這個單詞,並不知道是用來做什麼的。由於我iPad上的一個軟體 “Document” 的服務中有這樣一個協議(還有Dropbox/google drive/SMB/ftp等),想起以前曾經用過 OmniFocuse 這類的應用,也支援自定義的 WebDAV協議,臨時起意也起一個自己的 WebDAV 服務。接下來介紹如何使用容器搭建。

什麼是 WebDAV

首先要了解HTTP協議。 HTTP協議定義了幾種請求: GET, POST,PUT等用來下載檔案上傳資料。

WebDAV 則在標準的HTTP協議上擴充套件了特有的請求方式: PROPFIND, MOVE, COPY等。 然後用這些請求,操作web伺服器上的磁碟,我們可以將其當作網盤來使用。

WebDAV 標準得到了廣泛的成功,所有的現代作業系統擁有內建的對普通 WebDAV 的支援,許多流行的應用程式也可以使用 WebDAV,如 Microsoft Office,Dreamweaver 和 Photoshop。

搭建 WebDAV

這麼成熟的協議docker社群肯定已經有很多相關的映象了。我使用的是這個映象: jgeusebroek/docker-webdav 。這個映象基於 alpine並內建了一個輕量的 httpd 服務,已經相當的夠用了。

按照作者的描述,簡單使用如下命令就可以執行起來了。

docker run --restart=always -d  -p 0.0.0.0:80:80 \  --hostname=webdav \  --name=webdav \  -v /:/webdav \  jgeusebroek/webdav

預設的賬號密碼是 webdav/vadbew。當然這樣非常不安全。

以下是我的一些自定義配置,可以跟著我往下配置。

在這裡我是重寫了賬號密碼(debian系):

#!/bin/bashapt-get install apache2-utilshtpasswd -c htpasswd kelu

我使用 htpasswd 命令建立了一個使用者名稱為 kelu 的 htpasswd 檔案,按照提示輸入密碼,便完成了認證檔案的建立。建立一個config資料夾,並將它移入資料夾中:

mkdir configmv htpasswd configcd configwget https://github.com/jgeusebroek/docker-webdav/raw/master/files/webdav.conf

最後我把預設的webdav的http配置也放到了配置資料夾中。

最後建立 docker-compose.yml 檔案:

version: '3.2'services: webdav:  image: jgeusebroek/webdav  container_name: webdav  environment:#   USER_UID: 0   USER_GID: 50   READWRITE: 'true'  volumes:   - /var/local/document:/webdav   - ./config:/config  ports:   - '39989:80'  restart: always

我將 /var/local/document 資料夾作為webdav的主目錄,執行:

docker-compose up -d

便完成了服務的搭建,在 WebDAV 客戶端中輸入伺服器/ip/埠/賬號/密碼即可訪問。

參考資料

  • jgeusebroek/docker-webdav

「滋磁一下」

91f52c3a-681d-eb11-8da9-e4434bdf6706.gif