Part3
前言:
這篇我們會使用 docker 在 OMV 上架設 nextcloud 。首先感謝讀者閱讀到第三篇,能夠跟到這篇已經不簡單了,先給自己一個讚 ya~ 。
這一篇操作步驟相對較少,不過背後的原理並不簡單,開始前先給各位簡介一下,這樣在操作上會更清晰。
在傳統情況下,linux 在安裝 nextcloud 這種軟件的時候,需要使用文字介面,先前也要安裝其他東西,以及設定配置文件才可以達成,雖然技術上不能說很難,但對一般人並不容易。
而使用 docker技術,我們可以利用別人事先做好的"套裝",免去很多麻煩。docker 在技術上很先進,他類似一個 virtual machine (VM),而這個 VM 只有他要實行的功能,不具備完整系統,故在docker 當中稱之 container(容器)。這些功能只在 container 中進行,並不直接在host上運行,如果 container 出問題,也可以直接把這個 container 打掉重練;讓架 nextcloud 這件事變得非常非常容易。
補充:
安裝 nextcloud 主要有幾個方法:
1. 直接在主系統上安裝 nextcloud
這個方法步驟相對較多,但對於後期修改文件,擴充及調整等等相對容易,彈性最高,最穩定。
2. 使用snap 安裝 nextcloud
snap 就是一個封裝好的 nextcloud 套裝,一鍵安裝,直接使用。但目前的版本無法在nextcloud 加入 samba 。
3. 使用docker 安裝 nextcloud
安裝步驟比 2 多一些,但還是比 1 簡單很多;擴充及調整彈性比 2 高,比 1 低。但由於 docker 本身有很多外圍優點,從「好操作,易上手」的角度來說,這是個好方法。
nextcloud 傳統安裝 請參考 nextcloud 官網:
正文:
今天我們會用到一點點文字介面,我們會從個人電腦 通過 ssh 對 home nas 進行操作。ssh 就是通過文字介面登入另一台電腦的系統進行操作,這個操作層面是系統級別的,可以操作的東西比 OMV web 這種層面要多很多。
開始前,請先把你的 home nas 開機。接下來我們要為OMV安裝 extra 插件,但這個插件安裝需要在 ssh 進行。現在請你打開 win10 的 "開始" 並輸入cmd ,之後開啟 cmd (命令提示字元)。
ssh root@你為OMV設定的固定IP
接下來,你要輸入在文章 Part1 安裝時輸入的系統密碼,同樣輸入時不會顯示密碼文字。
apt update
wget -O - https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install | bash
這個時候在1 "系統" 之下 會多了 2"omv-extras",點開2,又會有 3"Docker" 及 4"Portainer"。這些就是我們剛剛在cmd 安裝的 omv extra 插件。接下我們要安裝 Docker 及 Portainer 。
會跑出視窗開始安裝,這種畫面我們在 part2 有看過了,不再累贅。安裝完按關閉。
之後又會跑一些文字,可能會用上幾分鐘,跑完就代表安裝完成。接下來登入你的OMV web,如果你已經登入了,請重新載入頁面。
指令來源:
Docker 提供了一鍵架好nextcloud 的技術核心。
Portainer 提供了圖形管理 docker 的介面。
2. 按"安裝"
接下來:
1. 點選"Portainer"
2. 按"安裝"
這個位置會是關鍵,這個頁面就是要架設 nextcloud 了。我們前言有說過 docker 可以通過建立 container 來實現我們想要的功能(即 nextcloud)。 我們在1的位置可以決定 stack 的名稱,建議用一個簡單的,比如 "nc1"。
在2的位置,我們會參考 docker 官方提供的 nextcloud docker-compose file。
docker nextcloud 官方:
我們會使用 Base version - apache,由於 docker 技術並不是入門級的,加上篇幅有限,接下來的操作可能不好理解,但簡單來說,我們需要在 2 的位置輸入一些文字,這些文字會告訴 portainer 怎樣用 docker 去建立一個 nextcloud container ,所以文字內容就是一些container 的配置。筆者在官方的文檔上增加了一點內容,分別是預設了mysql database (資料庫) 的密碼及加大了nextcloud 的上傳和ram使用限制。你可以依你的情況自行修改,也可以直接用筆者的設置。下面會先提供圖片說明,接下來會有供直接複製貼上的文字。
2. mysql database 密碼(筆者預設了 admin)
3. nextcloud 需要有 mysql database 的密碼 ,所以需要跟 2 是一樣的。
4. 這項是筆者加進去的,設定檔案上傳大小可達 100GB
5. 也是筆者加進去的,設定ram 使用上限 8GB
因為筆者經常用 nextcloud 傳圖片,所以必須把 4 及 5 設得較高。如果你沒有特別加入文字設定,container 就會採用 nextcloud 預設的上傳大小限制 512MB,512MB 對一般圖片或文檔都是沒問題的,但如果剛好你檔案比較大,超過這個上限,就會上傳失敗,比如1GB 的PSD檔,4GB 的小電影 等等;畢竟隨著科技進步,面對大檔的情況愈來愈多,對筆者而言,設高一點是好事。
下面是影遊樂園修改版的 nextcloud docker-compose file - Base version - apache:
version: '2'
volumes:
nextcloud:
db:
services:
db:
image: mariadb:10.5
restart: always
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=admin
- MYSQL_PASSWORD=admin
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud
restart: always
ports:
- 8080:80
- 4433:443
links:
- db
volumes:
- nextcloud:/var/www/html
environment:
- MYSQL_PASSWORD=admin
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=db
- PHP_UPLOAD_LIMIT=100G
- PHP_MEMORY_LIMIT=8G
--------------------------------我是分界線---------------------------
2. 輸入配置文字 (nextcloud docker-compose file)
3. 按 "Deploy the stack"
在"containers" 這邊,現在應該會看到3個 container 。Container 的名字會跟我們在stack 時取名字有關係,container 的功能則可以通過 image 的名字知道,比如nextcloud container 在 image 的部分則寫著 nextcloud。
輸入之後就應該會跳出 nextcloud 的頁面了,現在要設定管理員用戶及密碼,之後按下"安裝"。
安裝需要時間,要等一下子。
接下來需要等一陣子,3 的位置會進入載入中的狀態,這時候正在從網上下載需要的軟件,需時數分鐘是很正常的,先起來活動一下身子吧。
當看到狀態都是 runing ,恭喜! 你已經成功把 nextcloud 架起來了。這時候在瀏覽器輸入你的 home nas 的 IP 後面加上:8080 。
例子:
192.168.1.201:8080
接下來你只要在路由器當中設定 "通訊埠轉發" (Port Forwarding) ,就可以從外網連進來了,目前未做加密設定SSL 只有port 8080。Port Forwarding 很簡單,教學也很多,這部分請自己爬文囉。
下一篇 Part4 ,我們會把 Part2 設定好的 samba 加入 nextcloud 當中,這樣只要把檔案上傳到nextcloud 時,就可以實時在 windows 的網路磁碟中存取。
後話:
恭喜,你為自己架好 nextcloud ,可以不用買google drive服務了。使用docker 安裝 nextcloud 實在又快又方便。
筆者從第一次安裝 linux 用,snap => 傳統方式 => docker 安裝nextcloud ,再到可以把nextcloud 架起來,再正式投入使用,也花了1個多月的時間,當中也跑了很多彎路,一開始用snap的時候,解決不了加入 samba 的問題,直到發現是真的解決不了,只好用傳統方式安裝,效果是好的,但無法快速部署,後來使用docker,docker 雖然在架nextcloud 時很方便,但之後調整的技術門檻相對較高,對一個完全自學又時間有限的人而言,其實不容易;所以希望這幾篇文章可以帶你走更遠的路,make your life easier。
如果要把 nextcloud 提升到應用層面,你可能還需要參考 Part 4及Part5。
現在的docker介面很像不一樣了QQ
回覆刪除應該都是萬變不離其宗,可以爬文一下,但最好找英文文章,中文的真的很少(而且通常不詳細)。
刪除https://youtu.be/f8Yoo4FRGBU
回覆刪除可以看這段教學,昨晚嘗試架設,也是到docker的步驟卡關了
OMV現在更新了, 現在不需要Portainer, 請參考 https://wiki.omv-extras.org/doku.php?id=omv6:docker_in_omv
回覆刪除現在事情變簡單了, 安裝 omv-compose 後, 只要在 OMV 頁面就可以管理 docker 的事
刪除