
文件共享是團隊協(xié)作的剛需,面對說停就停的網(wǎng)盤服務(wù),很多同學(xué)除了心塞已經(jīng)開始盤算搭建自己的網(wǎng)盤應(yīng)用了。
ownCloud 是一個開源免費的存儲管理工具,它能幫你快速架設(shè)一套專屬的網(wǎng)盤服務(wù),可以像 Dropbox 那樣實現(xiàn)文件跨平臺同步、共享、版本控制、團隊協(xié)作等等。
然而在VPS上搭建ownCloud是一件費時費力的工作,除此之外更需要考慮數(shù)據(jù)的可靠性、備份等工作。
本文將利用阿里云容器服務(wù)在幾分鐘內(nèi)輕松搭建一個基于Docker的ownCloud專屬網(wǎng)盤,并使用阿里云提供的OSS(Object Storage Service,對象存儲服務(wù))作為高可靠、低成本的云存儲后端。
創(chuàng)建 OSS bucket
首先你需要創(chuàng)建一個和容器服務(wù)處于同一區(qū)域中的bucket,這樣容器應(yīng)用可以通過內(nèi)網(wǎng)地址來訪問bucket中存儲的文件數(shù)據(jù),提升訪問速度并節(jié)省公網(wǎng)帶寬

創(chuàng)建 OSS 數(shù)據(jù)卷
數(shù)據(jù)卷是Docker提供的容器儲存模型:可以實現(xiàn)容器和數(shù)據(jù)生命周期的解耦,當(dāng)容器被刪除或重建之后數(shù)據(jù)依然存在;提供了可擴展的插件機制,支持不同的存儲實現(xiàn)。
阿里云容器服務(wù)內(nèi)置了針對阿里云的數(shù)據(jù)卷驅(qū)動,支持不同類型的云存儲服務(wù):包括NAS(文件存儲服務(wù) NFS),OSS(對象存儲服務(wù),OSSFS)和云盤(即將推出)。關(guān)于數(shù)據(jù)卷的詳細(xì)信息可以參閱幫助文檔
OSSFS 能把OSS bucket掛載到本地像訪問本地文件一樣操作云端存儲數(shù)據(jù),非常適合文件存儲類型的應(yīng)用。我們可以在容器服務(wù)控制臺的“數(shù)據(jù)卷”頁面,方便地為指定集群創(chuàng)建一個“OSS”類型的數(shù)據(jù)卷

配置如下: 數(shù)據(jù)卷名: owncloud ,也可以選擇其他值,這個需要和下文模板中引用volume保持一致
AccessKey ID和AccessKey Secret:可以從當(dāng)前用戶賬號的“accesskeys”中獲得

其他參數(shù)值:輸入 -o noxattr 來提升數(shù)據(jù)卷性能
訪問域名:根據(jù)當(dāng)前集群的網(wǎng)絡(luò)方式,選擇“內(nèi)網(wǎng)域名”或者“VPC域名”來訪問OSS bucket。
文件緩存:選擇 打開 可以提升訪問性能
值得注意的是:OSS和NAS類型的數(shù)據(jù)卷都是全局(global)數(shù)據(jù)卷,會出現(xiàn)在集群中任何一個節(jié)點上。如果容器指明了重新調(diào)度配置,即使所在節(jié)點掛掉,可以自動在其他健康節(jié)點上重新恢復(fù),而相同數(shù)據(jù)卷依然可以mount到容器指定目錄上,不會導(dǎo)致數(shù)據(jù)丟失。
創(chuàng)建編排模板
在編排模板列表頁面,創(chuàng)建如下編排模板
owncloud: image: owncloud:9 restart: always links: - mysql:mysql volumes: - owncloud:/owncloud labels: aliyun.routing.port_80: 'owncloud'mysql: image: mysql:5.7 restart: always environment: MYSQL_ROOT_PASSWORD: changeme
注釋:
這里使用了 ownCloud的官方Docker鏡像 和 MySQL的官方Docker鏡像 。ownCloud應(yīng)用容器利用容器別名 mysql 來關(guān)聯(lián)MySQL容器。 利用 aliyun.routing.port_80: 'owncloud' 標(biāo)簽指明了用于訪問網(wǎng)盤應(yīng)用的虛擬域名 利用 volumes 中的數(shù)據(jù)卷映射,把我們創(chuàng)建出來的OSS數(shù)據(jù)卷 owncloud 掛載到容器的 /owncloud 目錄。使用編排模板部署ownCloud應(yīng)用
選擇編排模板,點擊部署應(yīng)用。片刻之后,應(yīng)用就會部署成功

選擇owncloud服務(wù),并點擊訪問端點

在瀏覽器中就可以看到ownCloud的配置界面了

輸入管理員賬號和密碼之后,選擇“存儲&數(shù)據(jù)庫”進(jìn)行配置。ownCloud 缺省會使用SQLite作為數(shù)據(jù)庫,并使用本地文件系統(tǒng)來保持?jǐn)?shù)據(jù)文件。請按如下界面修改配置

注意:
數(shù)據(jù)目錄: 輸入 /owncloud/data 這里面/owncloud是OSS bucket在容器中的掛載點 配置數(shù)據(jù)庫:選擇 MySQL/MariaDB 數(shù)據(jù)庫用戶: 輸入 root 數(shù)據(jù)庫密碼: 輸入編排模板中對應(yīng)數(shù)據(jù)庫ROOT密碼 數(shù)據(jù)庫名稱: 輸入 owncloud 數(shù)據(jù)庫地址: 輸入 mysql 連接MySQL數(shù)據(jù)庫容器
點擊“安裝完成”,片刻之后下面的頁面會出現(xiàn)

使用ownCloud應(yīng)用
這時候你的專屬網(wǎng)盤就成功建立起來了。不但可以上傳文件,還可以為文件生成“分享鏈接”。

收到鏈接的小伙伴,就能看到你送來的滿滿的節(jié)日祝福了

ownCloud還有很多玩法,本文不再贅述。
總結(jié)
數(shù)據(jù)卷是Docker支持有狀態(tài)應(yīng)用的重要機制。合理選擇不同的數(shù)據(jù)卷類型可以讓你更好地管理應(yīng)用中的持久化數(shù)據(jù)。
阿里云容器服務(wù)完全兼容Docker數(shù)據(jù)卷機制,同時內(nèi)置了對阿里云存儲服務(wù)的支持,無需編程就可以使用不同的存儲能力。
新聞熱點
疑難解答
圖片精選