TongRDS 2214 docker版指引(by lqw )

文章目录

    • 前言
    • 准备工作
    • 中心节点
    • 服务节点
    • 哨兵节点

前言

部署docker版本,建议先参考TongRDS2214手动部署版指引(by lqw+sy)
在本地手动部署了一套适合业务场景的rds 服务后,再通过dockerfile 打镜像。

准备工作

1.准备对应的安装包(其中mc的是中心节点的安装包,node是服务节点和哨兵节点安装包)。
在这里插入图片描述

2.已手动部署好对应的rds服务并测试过没有问题。
3.确认一下不同服务需要用到的中心节点和服务节点还有哨兵节点的个数。
例如单机版只需要一个中心节点,一个服务节点。
集群版需要一个中心节点,六个服务节点。
哨兵版需要一个中心节点,六个服务节点,其中有三个是作为服务节点,另外三个作为哨兵节点。
以此类推,然后根据本帖子里写的中心节点,服务节点,哨兵节点的指引打docker镜像。
4.安装前请确保当前磁盘的使用情况,避免因为磁盘空间不足导致安装失败。
在这里插入图片描述

df -h /opt

在这里插入图片描述
5.确认一下docker 的磁盘使用情况,如果用满了,自己百度搜一下怎么清理,清理前记得做好备份:

 docker system df

在这里插入图片描述
如果想要彻底清理出空间,包括清理掉镜像和容器,可以使用这个指令

docker system prune -a

中心节点

本次示范用的目录为/opt/rds/pcenter ,跟TongRDS2214手动部署版指引(by lqw+sy) 有点不一样,请注意区别。

停掉服务器本地的中心节点服务。
在这里插入图片描述

记得检查配置文件(etc下的cluster.properties)
在这里插入图片描述
授权文件也检查一下
在这里插入图片描述

下面是本次使用到的dockerfile,请命名为Dockerfile-tongcenter :

#根据自己想要用的系统来配,例如ubuntu或者centos,但是得用docker先pull
FROM centos
MAINTAINER TongRDS
#根据自己本地的jdk来配(jdk1.8.0_391需要放在跟dockerfile同一级目录)
COPY ./jdk1.8.0_391/ /opt/jdk1.8.0_391
#根据自己本地的jdk来配
ENV JAVA_HOME=/opt/jdk1.8.0_391
ENV PATH=${JAVA_HOME}/bin:$PATH
ENV TZ=Asia/Shanghai
#中心节点解压目录pcenter需要放在/opt/rds/pcenter,这个根据自己的情况来修改,最好授权也放在/opt/rds/pecenter(安装中心节点) 下
COPY ./pcenter/ /opt/pcenter
WORKDIR /opt/pcenter/bin
#6300是在中心节点的配置文件sync.properties里配的
EXPOSE 6300 8086 26379
ENTRYPOINT "./StartCenter.sh"

dockerfile,pcenter,jdk路径如下:
在这里插入图片描述

之后,cd到dockerfile所在的目录(这里是/opt/rds),执行以下指令:

docker build -f Dockerfile-tongcenter -t tongrds-center:2.2.C.1 .

在这里插入图片描述
接下来轮到生成容器和挂载相关文件(pot/rds/pcenter是宿主机挂载目录,也是手动部署的rds的中心节点的安装目录):

# 有需要可以在-d 后加--name 容器名
docker run -d -e CENTER_PLATFORM=native \-p 8086:8086 \-p 6300:6300 \-p 26379:26379 \-v /opt/rds/pcenter/etc/cluster.properties:/opt/pcenter/etc/cluster.properties \-v /opt/rds/pcenter/etc/active.properties:/opt/pcenter/etc/active.properties \-v /opt/rds/pcenter/etc/acl.properties:/opt/pcenter/etc/acl.properties \-v /opt/rds/pcenter/etc/config.properties:/opt/pcenter/etc/config.properties \-v /opt/rds/pcenter/etc/sync.properties:/opt/pcenter/etc/sync.properties \-v /opt/rds/pcenter/center.lic:/opt/pcenter/center.lic \tongrds-center:2.2.C.1

使用 docker ps -a 看看有没有对应容器,顺带看看CONTAINER ID
在这里插入图片描述
使用docker logs CONTAINER ID 看看日志:
在这里插入图片描述

使用以下指令進入容器内部,檢查是否配置文件已生效:

docker exec -it CONTAINER ID  /bin/bash # 退出的话则使用这个指令
exit

在这里插入图片描述

服务节点

本次示范用的目录为/opt/rds/pmemdb ,跟TongRDS2214手动部署版指引(by lqw+sy) 有点不一样,请注意区别。

关掉服务节点:
在这里插入图片描述
dockerfile和jdk还有pmemdb的目录如下图所示:
在这里插入图片描述

dockerfile 參考(其中6200和6379是在etc/cfg.xml里配置的,注意一下,如果同一个docker需要装多个服务节点,这个端口不要重复,不然会有端口冲突的):

#根据自己想要用的系统来配,例如ubuntu或者centos,但是得用docker先pull
FROM centos
MAINTAINER TongRDS
#根据自己本地的jdk来配(jdk1.8.0_391需要放在跟dockerfile同一级目录)
COPY ./jdk1.8.0_391/ /opt/jdk1.8.0_391
#根据自己本地的jdk来配
ENV JAVA_HOME=/opt/jdk1.8.0_391
ENV PATH=${JAVA_HOME}/bin:$PATH
ENV TZ=Asia/Shanghai
COPY ./pmemdb/ /opt/pmemdb/
#这里的端口在配置文件里配置,需要保持一致
EXPOSE 6200 6379
WORKDIR /opt/pmemdb/bin
ENTRYPOINT "./StartServer.sh"

例如你在本地弄了两个pmemdb,其中一个是pmemdb2,pmemdb2可以参考这个dockerfile(前提是cfg.xml里配置了6201和6380,6380是redis连接端口)

#根据自己想要用的系统来配,例如ubuntu或者centos,但是得用docker先pull
FROM centos
MAINTAINER TongRDS
#根据自己本地的jdk来配(jdk1.8.0_391需要放在跟dockerfile同一级目录)
COPY ./jdk1.8.0_391/ /opt/jdk1.8.0_391
#根据自己本地的jdk来配
ENV JAVA_HOME=/opt/jdk1.8.0_391
ENV PATH=${JAVA_HOME}/bin:$PATH
ENV TZ=Asia/Shanghai
COPY ./pmemdb2/ /opt/pmemdb/
#这里的端口在配置文件里配置,需要保持一致
EXPOSE 6201 6380
WORKDIR /opt/pmemdb/bin
ENTRYPOINT "./StartServer.sh"

pmemdb的可以执行这个指令来打包镜像(cd到dockerfile所在目录执行)

docker build -f Dockerfile-tongnode -t tongrds-node:2.2.C.1 .

在这里插入图片描述
pmemdb2的可以执行这个指令来打包镜像(cd到dockerfile所在目录执行)

docker build -f Dockerfile-tongnode2 -t tongrds-node2:2.2.C.1 .

在这里插入图片描述

通过dockerfile打完镜像后,pmemdb的可以执行这个指令构建和启动对应容器并挂载相关配置文件:

    # 有需要可以在-d 后加--name 容器名docker run -d -p 6200:6200 -p 6379:6379 \-v /opt/rds/pmemdb/etc/cfg.xml:/opt/pmemdb/etc/cfg.xml \-v /opt/rds/pmemdb/etc/dynamic.xml:/opt/pmemdb/etc/dynamic.xml \-v /opt/rds/pmemdb/var:/opt/pmemdb/var \tongrds-node:2.2.C.1

通过dockerfile打完镜像后,pmemdb2的可以执行这个指令构建和启动对应容器并挂载相关配置文件:

   # 有需要可以在-d 后加--name 容器名docker run -d -p 6201:6201 -p 6380:6380 \-v /opt/rds/pmemdb2/etc/cfg.xml:/opt/pmemdb/etc/cfg.xml \-v /opt/rds/pmemdb2/etc/dynamic.xml:/opt/pmemdb/etc/dynamic.xml \-v /opt/rds/pmemdb2/var:/opt/pmemdb/var \tongrds-node2:2.2.C.1

如下图所示,先用docker ps -a 查看一下CONTAINER ID
在这里插入图片描述
使用docker logs CONTAINER ID 看看日志:
在这里插入图片描述

使用以下指令進入容器内部,檢查是否配置文件已生效:

docker exec -it CONTAINER ID  /bin/bash # 退出的话则使用这个指令
exit

进入到容器内部的时候,使用./Client.sh -r -p redis连接端口(cfg.xml里配置的,一般是6379),如下图所示:

在这里插入图片描述
输入cluster nodes,查看集群是否生效,另外还可以输入set 111 123456 这样的指令,回车后输入get 111 看是否能获取到信息。
在这里插入图片描述
备注:
如果是集群版或者哨兵版,有时会有这种提示,属于正常现象,这种需要到对应的节点进行操作
在这里插入图片描述

哨兵节点

本次示范用的目录为/opt/rds/pmemdb_shaobing ,跟TongRDS2214手动部署版指引(by lqw+sy) 有点不一样,请注意区别。

停掉哨兵节点的进程。

在这里插入图片描述

dockerfile 参考:

#根据自己想要用的系统来配,例如ubuntu或者centos,但是得用docker先pull
FROM centos
MAINTAINER TongRDS
#根据自己本地的jdk来配(jdk1.8.0_391需要放在跟dockerfile同一级目录)
COPY ./jdk1.8.0_391/ /opt/jdk1.8.0_391
#根据自己本地的jdk来配
ENV JAVA_HOME=/opt/jdk1.8.0_391
ENV PATH=${JAVA_HOME}/bin:$PATH
ENV TZ=Asia/Shanghai
COPY ./pmemdb_shaobing/ /opt/pmemdb/
#这里的端口在配置文件里配置,需要保持一致
EXPOSE 26379 26379
WORKDIR /opt/pmemdb/bin
ENTRYPOINT "./StartSentinel.sh"

备注:
哨兵节点本质跟服务节点的不同在于,启动的脚本不同,使用的端口不同:
在这里插入图片描述
目录文件如下所示:
在这里插入图片描述

确认dockerfile和哨兵节点都如上图所示进行方式后,cd到dockerfile所在目录,执行以下指令:

docker build -f Dockerfile-tongnode-sentinel -t tongrds-node-sentinel:2.2.C.1 .

在这里插入图片描述
之后执行以下指令,创建并运行容器:

 # 有需要可以在-d 后加--name 容器名
docker run -d -p 26379:26379 \-v /opt/rds/pmemdb_shaobing/etc/cfg.xml:/opt/pmemdb/etc/cfg.xml \-v /opt/rds/pmemdb_shaobing/etc/dynamic.xml:/opt/pmemdb/etc/dynamic.xml \-v /opt/rds/pmemdb_shaobing/etc/sentinel.xml:/opt/pmemdb/etc/sentinel.xml \tongrds-node-sentinel:2.2.C.1

使用docker logs CONTAINER ID 看看日志:
在这里插入图片描述
使用docker exec -it CONTAINER ID /bin/bash 進入到容器内部,輸入./Client.sh -r -p 26379(這個在sentinel.xml里查看) ,再依次输入SENTINEL masters ,SENTINEL slaves WebSession进行查看,跟手动部署版的操作是一样的:

在这里插入图片描述

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

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

相关文章

【大语言模型】私有化搭建-企业知识库-知识问答系统

下面是我关于大语言模型学习的一点记录 目录 人工智能学习路线 MaxKB 系统(基于大语言模型的知识问答系统) 部署开源大语言模型LLM 1.CPU模式(没有好的GPU,算力和效果较差) 2.GPU模式(需要有NVIDIA显卡支持) Ollama网络配置 Ollama前…

Android 自定义Edittext 和TextView 提示文字和填入内容不同的粗细组件

近期项目中又EditText 以及TextView 这两个组件需要用到提示文字 以及 填入文字要保持不同的粗细程度,所以记录一下 首先 是EditText 组件的自定义 BLEditText 继承的这个组件是一个三方的组件,可以在很大程度上减少drawable的编写,有兴趣的可以去相关的Git去看一下 点击查看,…

Elasticsearch:介绍 retrievers - 搜索一切事物

作者:来自 Elastic Jeff Vestal, Jack Conradson 在 8.14 中,Elastic 在 Elasticsearch 中引入了一项名为 “retrievers - 检索器” 的新搜索功能。继续阅读以了解它们的简单性和效率,以及它们如何增强你的搜索操作。 检索器是 Elasticsearc…

Redis的安装配置及IDEA中使用

目录 一、安装redis,配置redis.conf 1.安装gcc 2.将redis的压缩包放到指定位置解压 [如下面放在 /opt 目录下] 3.编译安装 4.配置redis.conf文件 5.开机自启 二、解决虚拟机本地可以连接redis但是主机不能连接redis 1.虚拟机网络适配器网络连接设置为桥接模式…

Spark RDD优化

Spark RDD优化 一、分区优化二、持久化优化三、依赖优化四、共享变量优化五、提交模式与运行模式优化六、其他优化 一、分区优化 分区数调整:RDD的分区数可以通过repartition和coalesce方法进行调整。合理的分区数可以提高并行度,但过多的分区会增加管…

HarmonyOS 界面开发基础篇

一、布局思路 ArkUI(方舟开发框架)是一套 构建 鸿蒙应用 界面 的框架。 构建页面的最小单位就是“组件”。 组件分类 基础组件:界面呈现的基础元素。 如:文字、图片、按钮等。容器组件:控制布局排布。 如:Row行、Column列等。…

Window10下安装WSL-Ubuntu20.04

1.开启并更新WSL 1.1开启WSL 首先先来看一下电脑是否能够开启WSL:待补充... 然后再来看一下如何开启WSL:win->设置->应用->应用和功能->程序和功能,如下所示: 最后选择启用或关闭Windows功能,开启两个选项:1.Hyper-V…

C++中链表的底层迭代器实现

大家都知道在C的学习中迭代器是必不可少的,今天我们学习的是C中的链表的底层迭代器的实现,首先我们应该先知道链表的底层迭代器和顺序表的底层迭代器在实现上有什么区别,为什么顺序表的底层迭代器更加容易实现,而链表的底层迭代器…

Golang | Leetcode Golang题解之第235题二叉搜索树的最近公共祖先

题目&#xff1a; 题解&#xff1a; func lowestCommonAncestor(root, p, q *TreeNode) (ancestor *TreeNode) {ancestor rootfor {if p.Val < ancestor.Val && q.Val < ancestor.Val {ancestor ancestor.Left} else if p.Val > ancestor.Val && q…

Dify中的工具

Dify中的工具分为内置工具&#xff08;硬编码&#xff09;和第三方工具&#xff08;OpenAPI Swagger/ChatGPT Plugin&#xff09;。工具可被Workflow&#xff08;工作流&#xff09;和Agent使用&#xff0c;当然Workflow也可被发布为工具&#xff0c;这样Workflow&#xff08;工…

解决fidder小黑怪倒出JMeter文件缺失域名、请求头

解决fidder小黑怪倒出JMeter文件缺失域名、请求头 1、目录结构&#xff1a; 2、代码 coding:utf-8 Software:PyCharm Time:2024/7/10 14:02 Author:Dr.zxyimport zipfile import os import xml.etree.ElementTree as ET import re#定义信息头 headers_to_extract [Host, Conn…

芋道框架万字详解(前后端分离)、若依框架、yudao-cloud保姆级攻略

♥️作者&#xff1a;小宋1021 &#x1f935;‍♂️个人主页&#xff1a;小宋1021主页 ♥️坚持分析平时学习到的项目以及学习到的软件开发知识&#xff0c;和大家一起努力呀&#xff01;&#xff01;&#xff01; &#x1f388;&#x1f388;加油&#xff01; 加油&#xff01…

STM32MP135裸机编程:定时器内核时钟频率计算方法

0 工具准备 STM32MP13xx参考手册 1 定时器内核时钟频率计算方法 1.1 定时器分组 STM32MP135的定时器按照时钟源不同分成了三组&#xff0c;如下&#xff1a; APB1: APB2: APB6&#xff1a; 1.2 定时器内核时钟频率计算方法 APB1DIV是APB1的分频系数&#xff0c;APB2DIV、…

51单片机9(使用左移实现流水灯编程)

一、序言&#xff1a;下面我们来给大家介绍一下这个流水灯&#xff0c;流水灯如何来实现&#xff1f;我们依然使用这个工程来完成它。 1、那要使用实现这个流水灯&#xff0c;那我们只需要让D1到D8逐个的点亮&#xff0c;那同样要实现它足够的点亮&#xff0c;也会涉及到延时&…

html设计(两种常见的充电效果)

第一种 完整代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title&…

tomcat和nginx实现动静分离

访问nginx就是静态页面&#xff0c;nginx代理index.jsp可以访问tomcat的动态页面。 实验 1、设备以及IP地址 nginx1 192.168.10.41 tomcat1 192.168.10.51 tomcat2 192.168.10.52 2、tomcat1 的配置 创建动态页面 cd /usr/local/tomcat/webapps 创建一个目录作为一个ser…

【LeetCode 链表合集】

文章目录 1. LeetCode 206 反转链表2. NC40 链表相加 1. LeetCode 206 反转链表 题目链接&#x1f517; 解题思路&#xff1a; &#x1f50d; &#x1f427;创建一个新的节点&#xff0c;使用链表头插的方法&#xff1b; 2. NC40 链表相加 题目链接&#x1f517; 解题思路…

C++入门基础(2)

C入门基础&#xff08;2&#xff09; 1.缺省函数2.函数重载3.引用3.1 引用的概念和定义3.2 引用的特性3.3 引用的使用3.3.1引用的特性 4 .const引用5. 指针和引用的关系6.inline 1.缺省函数 • 缺省参数是声明或定义函数时为函数的参数指定⼀个缺省值。在调用该函数时&#xf…

【服务器】在Linux查看运行的Python程序,并找到特定的Python程序

在Linux查看运行的Python程序并找到特定的Python程序 写在最前面1. 使用ps命令查看所有Python进程查看详细信息 2. 使用pgrep命令查找Python进程ID 3. 使用top或htop命令使用top命令使用htop命令 4. 使用lsof命令查找Python进程打开的文件 5. 使用nvidia-smi命令查看GPU使用情况…

【接口自动化_06课_Pytest+Excel+Allure完整框架集成】

一、logging在接口自动化里的应用 1、设置日志的配置&#xff0c;并收集日志文件 日志的设置需要在pytest.ini文件里设置。这个里面尽量不要有中文 2、debug日志的打印 pytest.ini文件的开关一定得是true才能在控制台打印日志 import allure import pytest from P06_PytestFr…