大家好,這里是Cherry,喜愛折騰、撿垃圾、玩數(shù)碼,熱衷于分享NAS、docker玩耍經(jīng)驗~
前言
綠聯(lián)私有云上一次大版本更新是在7月中旬,版本號是1.0.0.1150,當時cherry專門寫了一篇文章介紹了一下更新的核心功能。
也不知道是巧合,還是綠聯(lián)內部形成慣例?8月同樣的時間點,綠聯(lián)連發(fā)2版更新,修復了一些問題,并且新增了一些還不錯的功能。
這里我繼續(xù)和大家分享一下我認為重要最重要的功能,docker compose支持。
一、docker更新支持容器堆疊
容器堆疊,又稱stack,就是我們俗稱的docker compose項目。
docker compose堆疊的優(yōu)勢:
- 簡易性:通過一個
docker-compose.yml
文件集中管理多個容器的配置,使得部署和管理應用程序變得更加簡單和直觀。- 安全性:通過Docker Compose部署的容器,在組內支持通過容器名訪問,可以減少不必要的端口透出,增加網(wǎng)絡安全性。
- 快速迭代和部署:Docker Compose 支持快速啟動、停止和重新構建容器,加速了開發(fā)和部署過程,同時簡化了持續(xù)集成和持續(xù)部署(CI/CD)的集成。
以往的綠聯(lián)私有云,在管理頁面上,只支持單個容器的創(chuàng)建和使用,對于不同容器間的訪問設置比較復雜。雖然我們可以使用ssh、portainer、dockge等其它方式來部署compose,但是部署和操作難度會提升很多,對于新人用戶來說也不夠友好。
手動創(chuàng)建容器,無法使用link等方式鏈接不同容器。
image.png
堆疊方式創(chuàng)建容器,可以方便的管理項目,查看項目內的日志、性能監(jiān)控等。
image.png
二、通過項目功能,創(chuàng)建一個compose項目
這里拿一個比較實用的導航欄工具Mtab項目,供大家實操體驗。首先打開docker應用,選擇【項目】,點擊【創(chuàng)建】按鈕。
image.png
在項目名稱處填入mtab,這個名字可以自定義,一般跟項目一樣就行了。個人認為綠聯(lián)云做的很好的地方在于【存放路徑】自動生成功能,相比較于其它NAS,使用compose的時候需要新創(chuàng)建文件夾,或者選定路徑才可以,會多一步操作。綠聯(lián)云則是在docker這個共享文件夾下,根據(jù)項目名稱新建一個同名文件夾。
image.png
在Compose配置處,復制我們的代碼,也可以通過本地計算機或NAS存儲導入docker-compose.yaml代碼。這里需要提一下,如果環(huán)境變量中涉及到PUID、PGID等信息的,我們不需要填寫,綠聯(lián)云本次更新已經(jīng)適配了自動將各類用戶信息自動填入環(huán)境變量的功能,基本上能解決所有docker容器的權限問題。
image.png
可復制的代碼如下,直接復制就行。
version: "3"
services:
mtab:
image: itushan/mtab
container_name: mtab
ports:
- "9200:80"
volumes:
- ./data:/app
restart: always
mysql:
image: mysql:8.0
container_name: sql
restart: always
environment:
MYSQL_DATABASE: mtab
MYSQL_USER: mtab_user
MYSQL_PASSWORD: mtab_passwd
MYSQL_ROOT_PASSWORD: mtab_root_passwd
volumes:
- mysql_data:/var/lib/mysql
command: ["--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci"]
volumes:
mysql_data:
這里特別強調一下關于volumes卷的部分。一般來說,定義docker容器的存儲位置時,我們需要在yaml文件里明確持久化存儲的絕對路徑,一般比較常見的:
群暉的路徑是/volume1/docker/xxxx;
威聯(lián)通的路徑是/share/Container/xxxx;
鐵威馬的路徑是/Volume1/docker/xxxx;
Unraid的路徑是/mnt/user/appdata/xxxx。
可以看到,不同品牌NAS對存儲空間的路徑規(guī)劃都是不同的。綠聯(lián)UGOS系統(tǒng)里,這個路徑是/mnt//dm-0/.ugreen_nas/長數(shù)字/docker/,十分復雜。
在UGOS Pro系統(tǒng)中,綠聯(lián)將這個路徑優(yōu)化了,也同樣是 /volume/docker/xxxx,即我們在頁面上看到的 /共享文件夾/docker/mtab ,而這個共享文件夾則和我們安裝docker應用的目錄保持一致的。
但是!但是!和群暉一樣,如果文件夾路徑中沒有文件存在,綠聯(lián)云也是不會執(zhí)行mkdir新建文件夾的行為的,我們必須先在對應的路徑創(chuàng)建文件夾以后才可以使用絕對路徑,否則會像下面的圖片一樣報錯。
image.png
所以,為了解決這個問題。建議大家在綠聯(lián)云的compose代碼中的任何卷路徑,都可以使用相對路徑的方式來操作,即./data,代表在存放路徑下創(chuàng)建文件夾。
image.png
三、關于如何管理compose項目
在項目欄里,最核心的功能就是日志,通過日志我們可以查找具體的部署問題和運行信息。紅框內的名字,代表的是項目里不同容器的名稱,默認的排序是參照時間進度的,所以我們可以很簡單的發(fā)現(xiàn)不同容器間互相訪問、調用的日志信息。
image.png
資源監(jiān)控頁面,可以看到組內各容器對資源的使用占比。包含了CPU、內存、上行帶寬、下行帶寬等。
image.png
如果發(fā)現(xiàn)堆疊項目出現(xiàn)異常,需要重新部署的時候,我們只需要在compose配置一欄里,實時修改新的內容,然后點擊重新部署即可。
image.png
如果平時項目不用了,我們也可以直接刪除。經(jīng)過實測,yaml文件依舊會保留在存儲空間內,我們下次需要重建項目的時候,只需要導入yaml文件即可,方便程度絕對暴打普通的容器創(chuàng)建。
image.png
寫在最后
綠聯(lián)私有云對compose的支持,正如我曾在系統(tǒng)介紹里提到的關于UGOS Pro未來可擴展性的說法。將系統(tǒng)底層從op轉變到debian所花費的力氣,從長遠看絕對會帶來更多的自由度和開發(fā)便利性。
仔細看了看本次8月更新的內容,包含了頁面優(yōu)化、文件管理、應用優(yōu)化與功能更新,部分依舊是基礎性功能,但也包含了很多新功能以及領先功能的推出。只要綠聯(lián)云可以一直掌握住目前的更新頻率和優(yōu)化進度,整個UGOS Pro系統(tǒng)肯定會越來越趨向于成熟、好用。
作者聲明本文無利益相關,歡迎值友理性交流,和諧討論~
,