这个操作惊呆我了!海康存储 R1竟然可以这样部署Portainer

这个操作惊呆我了!海康存储 R1竟然可以这样部署Portainer

哈喽小伙伴们好,我是Stark-C~

最近到手了海康存储(HIKVISION)私有云R1 ,该机的卖点还是很多的,比如优秀的做工,强大的配置,以及炫酷的颜值,更牛批的是,它对底层BIOS没有任何限制,到手后还能各种折腾,可玩性极高!

不过话说回来,海康存储 R1毕竟也是一台成品NAS,也有自己的NAS系统,只不过可能因为目前偏向于个人和家庭用户,功能性不是很强,系统权限也是有所限制。就比如说Docker,虽说它有自己的Docker可视化操作前端,但它没有给到全开放的SSH终端操作权限,所以对于很多特定权限的Docker容器,以及docker compose堆栈也不能直接支持。

但是,我们可以在海康存储 R1上部署Portainer,这样我们直接就能通过docker compose堆栈的方式获取Docker容器的所有权限操作,并且Portainer本身就是一款非常优秀的可视化Docker容器管理工具,装上之后可以让海康存储 R1的docket功能直接起飞,也算是必装套件之一了。

这里需要说明一下:本文的灵感来自于本站@可爱的小cherry大佬发过的一篇文章,再此对大佬表示深深的膜拜与感谢~!

Portainer部署

🔺开始之前我们先在文件管理器(我的空间)中的Docker目录下新建一个portainer的文件夹,然后在该文件夹下在建一个“data”的子文件夹用于相关配置文件的持久化存储(也便于以后Docker容器迁移)。

🔺然后打开海康存储 R1自己的Docker管理器,分别点击“镜像管理--添加--官方库添加”。

🔺镜像名称输入“6053537/portainer-ce”并回车,选择第一个直接下载就可以了。为什么没有选择官方Portainer,因为这个是国内某大佬根据官方二次编译并汉化的,非常好用。

🔺如果网络没什么问题,这里会有一个下载进度。

🔺下载完成后点击镜像下面的“创建容器”。

🔺【容器名称】随意吧,不过建议命名为容器的名称“portainer”便于后期识别。

🔺【存储空间】添加我们前面在Docker目录下,portainer文件夹下的“data”子文件。

🔺装置路径设置为“/data”,类型改为读写。

🔺【端口设置】这里“容器端口”设置为9000,本地端口设置为不冲突的任意端口即可,“端口类型”选择TCP。

🔺然后重点来了,海康存储 R1的Docker管理器不是不能直接访问宿主机的 Docker 环境(/var/run/docker.sock)嘛,但是它可以在【环境】中将docker cli指令转换为环境变量来使用。而这,就是@可爱的小cherry大佬分享的海康SAO操作,说实话着实惊呆我了~~

所以,根据这个思路,我们部署Portainer直接在【环境】中加入以下变量即可:

# 映射docker.sock

--volume=/var/run/docker.sock:/var/run/docker.sock

# 重启策略

--restart=always

最后就没啥可设置的了,点“完成”按钮就搞定了Portainer的部署工作。

🔺完成之后点击“容器管理”,选择部署好的“portainer--详情”。

🔺选择【端口设置】,点击访问地址,就能一键打开部署好的Docker容器项目了。

Portainer体验

🔺Portainer打开时没有任何问题的,首次使用需要创建用户,密码需要设置12位字符及以上。

🔺然后选择本地环境的开始使用。

🔺点击“local”。

🔺在容器中也可以看到我们部署好的Portainer正在运行中。

🔺接着我们直接点击Portainer容器进入详情页面,在“存储卷”中,我们可以通过“主机存储卷”看到我们当前容器映射设备的真实路径。可以看到我这里的真实路径其实是“/drives/nvme_e1/Users/admin/Docker/portainer/data”,也就是说,在我的这台机器中,它的Docker目录真实路径为“/drives/nvme_e1/Users/admin/Docker”,而根目录为“/drives/nvme_e1/Users/admin”。

知道了这个我们就可以使用Portainer随意部署容器了,这里以目前非常火的一个简约博客项目『VanBlog』为大家演示。

它因为依赖数据库,所以使用docker compose部署更为方便。它的docker compose.yml代码为:

version: "3"
​
services:vanblog:image: mereith/van-blog:latestrestart: alwaysenvironment:TZ: "Asia/Shanghai"EMAIL: "someone@mereith.com"     # 邮箱地址,用于自动申请 https 证书volumes:- /volume1/docker/van-blog/static:/app/static    # 图床文件的存放地址- /volume1/docker/van-blog/log:/var/log    # 日志文件- /volume1/docker/van-blog/config:/root/.config/caddy    # Caddy 配置存储- /volume1/docker/van-blog/data:/root/.local/share/caddy     # Caddy 证书存储ports:- 80:80     # 端口映射,冒号前面不要本地冲突mongo:image: mongo:4.4.9      # 指定MongoDB数据库镜像版本,某些机器不支持 avx 会报错,所以默认用 v4 版本。restart: alwaysenvironment:TZ: "Asia/Shanghai"volumes:- /volume1/docker/van-blog/mongo:/data/db      # MongoDB数据库的存放地址

而我们需要更改的基本就是它的映射路径与端口。所以按照我这边的情况,它实际的部署代码可以是这样的:

version: "3"
​
services:vanblog:image: mereith/van-blog:latestrestart: alwaysenvironment:TZ: "Asia/Shanghai"EMAIL: "someone@mereith.com"     # 邮箱地址,用于自动申请 https 证书volumes:- /drives/nvme_e1/Users/admin/Docker/van-blog/static:/app/static    # 图床文件的存放地址- /drives/nvme_e1/Users/admin/Docker/van-blog/log:/var/log    # 日志文件- /drives/nvme_e1/Users/admin/Docker/van-blog/config:/root/.config/caddy    # Caddy 配置存储- /drives/nvme_e1/Users/admin/Docker/van-blog/data:/root/.local/share/caddy     # Caddy 证书存储ports:- 8001:80     # 端口映射,冒号前面不要本地冲突mongo:image: mongo:4.4.9      # 指定MongoDB数据库镜像版本,某些机器不支持 avx 会报错,所以默认用 v4 版本。restart: alwaysenvironment:TZ: "Asia/Shanghai"volumes:- /drives/nvme_e1/Users/admin/Docker/van-blog/mongo:/data/db      # MongoDB数据库的存放地址

知道对应的部署代码,我们就可以开始在海康存储 R1上部署了。

🔺首先在文件管理器(我的空间)中的Docker目录下新建一个“van-blogr”的文件夹,然后在该文件夹下建立static、log、config、data、mongo总共5个子文件夹。

🔺然后打开Portainer容器的“堆栈--添加堆栈”。

🔺“名称”随意,接着将我们修改之后的docker compose.yml代码复制粘贴到“Web编辑器”中的方框中。

🔺完成后点击页面下方的“部署堆栈”。

🔺很快就部署好了VanBlog项目需要的两个容器。

🔺回到海康存储 R1自己的Docker管理器中也可以看到两个容器也是正常运行中。

🔺详情中的“存储空间”映射的也没有问题。

🔺并且可以正常打开VanBlog容器。

最后

对于海康存储 R1来说,当我们部署好Portainer之后可以说Docker的可玩性时直接起飞,虽说我们不能和传统NAS一样直接通过SSH终端的docker cli命令部署容器,但是我们可以将任何docker cli命令都转换成docker compose来部署,相比docker cli命令的方式,docker compose堆栈部署还方便后期的维护与升级。

🔺海康存储(HIKVISION)私有云R1是一款四盘位高性能的家庭网络存储解决方案,最大支持96TB存储容量。它采用Intel四核处理器 N100,标配一个 DDR5内存插槽与双M.2 SSD设计,强大的性能足够个人及家庭用户的数据备份和文件共享需求。

I/O接口上也是非常丰富,包括3个USB 3.2 Gen2 10Gbps接口、1个 USB3.2 Gen2 Type-C接口及1个HDMI接口(4K 60fps),两个2.5G网口,适应多种扩展需求。

比较有意思的是,它的前面板刚还配备了1块2.86寸、60Hz触控屏,支持多种功能与主题设置,可实时显示温度、CPU占用、风扇、硬盘等状态信息,侧边还配备了透明侧板以及可调控炫彩RGB氛围灯,拥有极高的可玩性。

好了,以上就是今天给大家分享的内容,我是爱分享的Stark-C,如果今天的内容对你有帮助请记得收藏,顺便点点关注,咱们下期再见!谢谢大家~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/463087.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

雷电模拟器ls内部操作adb官方方法

正常情况下,我们通过adb操作模拟器,如安装软件、运行shell命令等,但是用windows系统,adb就经常掉线,端口被占用,或者发现不到设备,对于调试或者自动化非常痛苦。就在雷电安装目录下,…

TS学习笔记

一、TS运行环境搭建 1、安装 安装命令 npm i -g typescript 第一步:新建index.html和demo.ts 第二步:在index.html引入demo.ts文件 第三步:运行TS的命令 tsc demo.ts 注意:运行命令后,会将ts文件转换成js文件 …

使用Jest进行JavaScript单元测试

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 使用Jest进行JavaScript单元测试 引言 Jest 简介 安装 Jest 创建基本配置 编写测试用例 运行测试 快照测试 模拟函数 代码覆盖率…

机器学习算法之回归算法

一、回归算法思维导图 二、算法概念、原理、应用场景和实例代码 1、线性回归 1.1、概念 ‌‌线性回归算法是一种统计分析方法,用于确定两种或两种以上变量之间的定量关系。‌ 线性回归算法通过建立线性方程来预测因变量(y)和一个或多个自变量…

Android中同步屏障(Sync Barrier)介绍

在 Android 中,“同步屏障”(Sync Barrier)是 MessageQueue 中的一种机制,允许系统临时忽略同步消息,以便优先处理异步消息。这在需要快速响应的任务(如触摸事件和动画更新)中尤为重要。 在 An…

突破职场瓶颈,实现个人成长

在职场生涯中,我们总会遇到各种各样的瓶颈。这些瓶颈如同成长道路上的荆棘,让我们感到困惑、焦虑甚至恐惧。然而,瓶颈并非无法逾越,只要我们掌握正确的方法,勇敢面对,就能顺利突破,实现个人成长…

ubuntu 24.04中安装 Easyconnect,并解决版本与服务器不匹配问题

下载安装包 下载地址 https://software.openkylin.top/openkylin/yangtze/pool/all/ 页面搜索 easyconnect 选择 easyconnect_7.6.7.3.0_amd64.deb安装 sudo dpkg --install easyconnect_7.6.7.3.0_amd64.deb卸载 sudo dpkg --remove easyconnect出现的问题 安装以后第…

判断是否是变位词

题目:给定两个单词,判断这两个单词是否是变位词。如果两个单词的字母完全相同,只是位置有所不同,则称这两个单词为变位词。例如eat和tea是变位词。 答:问题分析:判断是否为变位词,只需要分别统计…

解决python matplotlib画图无法显示中文的问题

在用matplotlib做一个简单的可视化统计时,由于标签是中文,无法显示,只是显示出来一些方框(如图) 问题在于,当前matplotlib使用的字体不支持中文,我们进行替换就可以了 我想替换为黑体&#xff…

Docker:网络

Docker:网络 Docker 网络架构CNMLibnetwork驱动网络类型 命令docker network lsdocker network inspectdocker network createdocker network connectdocker network disconnectdocker network prunedocker network rm 网络操作bridgehostcontainernone Docker 网络…

力扣排序268题 数字丢失

题目: 丢失的数字 给定一个包含[0,n]中n各数的数组nums,找出[0,n]这个范围 内没有出现在数组中的那个数。 示例1: 输出:n 3,因为有3个数字,所以所有的数字都在范围 [0,3]内。2是丢失的数字,因为它没有出现…

自动化测试类型与持续集成频率的关系

持续集成是敏捷开发的一个重要实践,可是究竟多频繁的集成才算“持续”集成? 一般来说,持续集成有3种常见的集成频率,分别是每分钟集成、每天集成和每迭代集成。项目组应当以怎样的频率进行集成,这取决于测试策略&…

Gitlab-runner running on Kubernetes - hostAliases

*Config like this. *That in your helm values.yaml.

从头开始学PHP之面向对象

首先介绍下最近情况,因为最近入职了且通勤距离较远,导致精力不够了,而且我发现,人一旦上了班,下班之后就不想再进行任何脑力劳动了(对大部分牛马来说,精英除外)。 话不多说进入今天的…

【综合算法学习】(第十五篇)

目录 图像渲染(medium) 题目解析 讲解算法原理 编写代码 岛屿数量(medium) 题目解析 讲解算法原理 编写代码 图像渲染(medium) 题目解析 1.题目链接:. - 力扣(LeetCode&…

教育技术革新:SpringBoot在线试题库系统开发

2 相关技术 2.1 Spring Boot框架简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Sprin…

OTFS延迟多普勒信道模型(信道模型代码)

一、信道模型公式 1、延迟多普勒域信道模型 在一个M*N维的延迟多普勒域中,定义M为子载波数,子载波间隔为 对应倒数时隙长度为,信号总长度为,L-1表示最大径数。 公式中冲激响应延迟域移动的分辨率,如下图中Delay轴的一格也就是即,多…

Failed to search for file: Cannot update read-only repo

今天在读《Linux就该这么学》并上机操作RedHat Linux 8。结果在执行指令时却出现了问题: 我明明已经是root权限了,我于是上网去找,但也没看到合适的解答。为什么会和书上的操作结果不一样。 后来我突然意识到是不是我打了不该打的空格,于是…

Android中SurfaceView与GLSurfaceView 的关系

SurfaceView 与 GLSurfaceView 的关系 在 Android 开发中,SurfaceView 和 GLSurfaceView 是实现自定义渲染效果的关键组件。它们提供了不同的渲染方式,适用于不同的应用场景。我们将通过以下几个方面详细说明 SurfaceView 和 GLSurfaceView 的特点及实现…

游戏引擎中的颜色科学

游戏引擎中的渲染组件的作用是生成一个二维图片,在特定的时间从给定的视点观察的方向看到的一个三维空间的状态。他们的生成每一张图片都会被称为帧,他们生成的速度称为帧率。 像素 在每一帧中,游戏引擎的视觉输出基本上是一大堆彩色像素&a…