大家好,这里是Cherry,喜爱折腾、捡垃圾、玩数码,热衷于分享NAS、docker玩耍经验~
前言
前几天在用海康R1部署nastools的教程中提过,海康R1的docker可视化页面可以说是我目前看到可玩性最高的。
为啥这样说?因为它家的docker采用了独一无二的环境变量配置方案,支持我们将docker cli中的指令转换为环境变量使用,我们甚至可以用docker环境变量来执行cmd指令!!
今天,我们就给海康R1的docker功能升升级,部署一个dockge项目来实现海康R1对docker-compose的支持。
其它NAS可以看我曾经发过的文章安装
项目特性:
- 🧑 管理您的`composite.yaml`文件
- 开始/停止/重新启动/删除
- 更新Docker映像
- ⌨️ ️用于`composite.yaml`的编辑器
- 🦦 交互式Web终端
- ️ (v1.4.0) 支持多个代理-您可以在一个界面中管理来自不同Docker主机的多个堆栈
- 转换`docker run.` 命令进入`composite.yaml`
- Dockge不会绑架你的合成文件,它们像往常一样存储在你的驱动器上。您可以使用普通`的Docker compose`命令与它们交互
- 一切都是响应式的。进度(上拉/下拉)和终端输出是实时的
- 易于使用和花哨的UI -如果你喜欢Uptime Kuma的UI/UX,你也会喜欢这个
一、系统部署
开始项目部署前,我们先从网盘下载相关的工具,包括容器镜像。
夸克网盘分享了「dockge」
pan.quark.cn/s/6951317e7970
如果网络不好的,建议选择导入功能,把网盘下载的镜像导入进去。
如果网络OK,或者给docker功能配置了镜像库的(如1panel),比如下面这个操作,可以自行下载镜像。
在docker页面搜索louislam/dockge
,别下错其它版本了。
在启动前,我们先创建两个文件夹:一个叫dockge,用来存放dockge的数据文件;另外一个叫stacks,用来存放以后dockge管理的compose项目。
接着,在【镜像管理】里选择dockge
镜像,点击【创建容器】。
【存储空间】:这里配上刚才我们创建的两个文件夹。dockge对应容器内的/app/data
,stacks对应容器内的/opt/stacks
,记得类型都改为读写。
【端口设置】:默认使用的是5001 TCP端口,本地端口我们可以更改为不占用的任意,容器端口不能改。
【环境】:核心设置部分,因为海康R1在存储空间是没办法选择到docker.sock文件的,但是我们可以在环境变量里,将docker cli指令转换为环境变量来使用。更有趣的玩法,大家自己挖掘,以后有机会再发!
# 映射docker.sock
--volume=/var/run/docker.sock:/var/run/docker.sock
# 重启策略
--restart=always
# 项目目录
DOCKGE_STACKS_DIR=/opt/stacks
点击完成安装容器,然后切回到【容器管理】,切换到端口设置,点击【访问地址】就可以打开系统了。
二、系统体验
初始化账号密码进入系统。
系统总页面,展示了目前的compose项目所有内容。
大家可以注意到,中间有一个docker启动的功能,这个功能允许将docker run指令更改为docker compose,并且直接启动项目,简单又无脑,这也是dockge项目被称为神器的原因。
这里以最常用的网络管理软件lucky为例,输入其docker run指令,并点击转换为compose格式。
可以看到该指令完全被转换为compose.yaml格式了,我们只需要取个堆栈名称,然后点击部署。
点击左上角的【+compose】可以创建一个新的compose项目,可以手动编辑页面上得容器组,也可以直接复制compose.yml代码进去,左右两侧的内容是完全一致。
对于immich这类需要【.env】文件来配置环境变量的项目,我们不要点击部署,而是先点击保存,然后切换到海康R1的文件管理页面,可以看到compose.yml已经保存下来了,我们编辑好【.env】文件放进去就行了。
最后
本文介绍了如何解决海康存储R1无法使用docker compose的问题!现在,我们可以无忧无虑的在海康存储R1设备上安装docker容器了,通过dockge将原来无法部署的复杂项目全部上线,解决海康存储R1目前软件功能羸弱的问题。
除了docker cli外,我也尝试使用该功能挖掘海康存储R1的SSH权限,后面有机会我们再进行分享!
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
,