docker 搭建 web_搭建個人 webdav 伺服器
技術標籤:docker 搭建 webdocker 搭建openzipkinhp dl580 gen7 伺服器uid燈亮可能表示ios 搭建http伺服器
背景
對於技術飛速發展的今天來說, 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
「滋磁一下」