社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

你从未见过docker权限如此高的NAS!破解海康存储R1隐藏玩法,实现对docker compose的支持

可爱的小Cherry • 4 月前 • 620 次点击  

大家好,这里是Cherry,喜爱折腾、捡垃圾、玩数码,热衷于分享NAS、docker玩耍经验~

前言

前几天在用海康R1部署nastools的教程中提过,海康R1的docker可视化页面可以说是我目前看到可玩性最高的。
为啥这样说?因为它家的docker采用了独一无二的环境变量配置方案,支持我们将docker cli中的指令转换为环境变量使用,我们甚至可以用docker环境变量来执行cmd指令!!
今天,我们就给海康R1的docker升升级,部署一个dockge项目来实现海康R1对docker compose的支持
项目地址:
https://github.com/louislam/dockge
项目特性:
- 🧑💼 管理您的`composite.yaml`文件 - 开始/停止/重新启动/删除 - 更新Docker映像- ⌨️ ️用于`composite.yaml`的编辑器- 🦦 交互式Web终端- 🕷️ (v1.4.0) 支持多个代理-您可以在一个界面中管理来自不同Docker主机的多个堆栈- 🏪 转换`docker run.` 命令进入`composite.yaml`- 📙 Dockge不会绑架你的合成文件,它们像往常一样存储在你的驱动器上。您可以使用普通`的Docker compose`命令与它们交互- 🚄 一切都是响应式的。进度(上拉/下拉)和终端输出是实时的- 🐣 易于使用和花哨的UI -如果你喜欢Uptime Kuma的UI/UX,你也会喜欢这个



一、系统部署

开始项目部署前,我们先从网盘下载相关的工具,包括容器镜像。
夸克网盘分享了「dockge」https://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,后面有机会我们再进行分享!


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/174058
 
620 次点击