大家好,这里是Cherry,喜爱折腾、捡垃圾、玩数码,热衷于分享NAS、docker玩耍经验~
前言
绿联私有云上一次大版本更新是在7月中旬,版本号是1.0.0.1150,当时cherry专门写了一篇文章介绍了一下更新的核心功能。
也不知道是巧合,还是绿联内部形成惯例?8月同样的时间点,绿联连发2版更新,修复了一些问题,并且新增了一些还不错的功能。
这里我继续和大家分享一下我认为重要最重要的功能,docker compose支持。
一、docker更新支持容器堆叠
容器堆叠,又称stack,就是我们俗称的docker compose项目。
docker compose堆叠的优势:
- 简易性:通过一个
docker-compose.yml
文件集中管理多个容器的配置,使得部署和管理应用程序变得更加简单和直观。- 安全性:通过Docker Compose部署的容器,在组内支持通过容器名访问,可以减少不必要的端口透出,增加网络安全性。
- 快速迭代和部署:Docker Compose 支持快速启动、停止和重新构建容器,加速了开发和部署过程,同时简化了持续集成和持续部署(CI/CD)的集成。
以往的绿联私有云,在管理页面上,只支持单个容器的创建和使用,对于不同容器间的访问设置比较复杂。虽然我们可以使用ssh、portainer、dockge等其它方式来部署compose,但是部署和操作难度会提升很多,对于新人用户来说也不够友好。
手动创建容器,无法使用link等方式链接不同容器。
image.png
堆叠方式创建容器,可以方便的管理项目,查看项目内的日志、性能监控等。
image.png
二、通过项目功能,创建一个compose项目
这里拿一个比较实用的导航栏工具Mtab项目,供大家实操体验。首先打开docker应用,选择【项目】,点击【创建】按钮。
image.png
在项目名称处填入mtab,这个名字可以自定义,一般跟项目一样就行了。个人认为绿联云做的很好的地方在于【存放路径】自动生成功能,相比较于其它NAS,使用compose的时候需要新创建文件夹,或者选定路径才可以,会多一步操作。绿联云则是在docker这个共享文件夹下,根据项目名称新建一个同名文件夹。
image.png
在Compose配置处,复制我们的代码,也可以通过本地计算机或NAS存储导入docker-compose.yaml代码。这里需要提一下,如果环境变量中涉及到PUID、PGID等信息的,我们不需要填写,绿联云本次更新已经适配了自动将各类用户信息自动填入环境变量的功能,基本上能解决所有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;
威联通的路径是/share/Container/xxxx;
铁威马的路径是/Volume1/docker/xxxx;
Unraid的路径是/mnt/user/appdata/xxxx。
可以看到,不同品牌NAS对存储空间的路径规划都是不同的。绿联UGOS系统里,这个路径是/mnt//dm-0/.ugreen_nas/长数字/docker/,十分复杂。
在UGOS Pro系统中,绿联将这个路径优化了,也同样是 /volume/docker/xxxx,即我们在页面上看到的 /共享文件夹/docker/mtab ,而这个共享文件夹则和我们安装docker应用的目录保持一致的。
但是!但是!和群晖一样,如果文件夹路径中没有文件存在,绿联云也是不会执行mkdir新建文件夹的行为的,我们必须先在对应的路径创建文件夹以后才可以使用绝对路径,否则会像下面的图片一样报错。
image.png
所以,为了解决这个问题。建议大家在绿联云的compose代码中的任何卷路径,都可以使用相对路径的方式来操作,即./data,代表在存放路径下创建文件夹。
image.png
三、关于如何管理compose项目
在项目栏里,最核心的功能就是日志,通过日志我们可以查找具体的部署问题和运行信息。红框内的名字,代表的是项目里不同容器的名称,默认的排序是参照时间进度的,所以我们可以很简单的发现不同容器间互相访问、调用的日志信息。
image.png
资源监控页面,可以看到组内各容器对资源的使用占比。包含了CPU、内存、上行带宽、下行带宽等。
image.png
如果发现堆叠项目出现异常,需要重新部署的时候,我们只需要在compose配置一栏里,实时修改新的内容,然后点击重新部署即可。
image.png
如果平时项目不用了,我们也可以直接删除。经过实测,yaml文件依旧会保留在存储空间内,我们下次需要重建项目的时候,只需要导入yaml文件即可,方便程度绝对暴打普通的容器创建。
image.png
写在最后
绿联私有云对compose的支持,正如我曾在系统介绍里提到的关于UGOS Pro未来可扩展性的说法。将系统底层从op转变到debian所花费的力气,从长远看绝对会带来更多的自由度和开发便利性。
仔细看了看本次8月更新的内容,包含了页面优化、文件管理、应用优化与功能更新,部分依旧是基础性功能,但也包含了很多新功能以及领先功能的推出。只要绿联云可以一直掌握住目前的更新频率和优化进度,整个UGOS Pro系统肯定会越来越趋向于成熟、好用。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
,