Docker容器部署KES

一、安装部署

1,导入镜像
#导入镜像(root用户)
[root@node docker ]# mv kdb_x86_64_V008R006C009B0014.tar kingbase.tar
[root@node docker]# docker load -i kingbase.tar#查看镜像(root用户)
[root@node docker]# docker images
2、运行镜像

(1)设置环境变量

#(root用户)
docker run -idt --privileged -p ${hostport}:${containerport} \
–v ${宿主机挂载目录}:${容器挂载目录} \
-e NEED_START=${need_start} \
-e DB_USER=${username} \
-e DB_PASSWORD=${passwd} \
-e DB_MODE=${dbmode} \
-e ENCODING=${encoding} \
--name kingbase kingbase:v1 \
/usr/sbin/init#数据库默认用户名:system 数据库默认密码:12345678ab 数据库默认 data 目录:/home/kingbase/userdata/data 金仓数据库镜像:kingbase:v1
#设置数据库 data 目录的持久化路径时, 需要如下设置:
-v 选项冒号左侧宿主机挂载目录 (/mnt/data) 权限需要设置 755 的权限(chmod -R 755 /mnt/data), 不然会报权限(Permission denied) 错误。
-v 选项冒号右侧为容器内的挂载路径需要设置为/home/kingbase/userdata, 不然 data 目录无法持久化。

(2)最小启动命令

docker run -tid --privileged \
--name kingbase \
kingbase:v1 /usr/sbin/init#查看
docker ps

3.完整启动命令

[root@node docker]# mkdir /mnt/data
[root@node docker]# chmod -R 755 /mnt/data/
[root@node docker]# mkdir /home/kingbase/userdata -p[root@node docker]# docker run -tid --privileged -p 4321:54321 -v /mnt/data:/home/kingbase/userdata/ -e NEED_START=yes -e DB_USER=kingbase -e DB_PASSWORD=123456 -e DB_MODE=oracle --name kingbase kingbase_v008r006c009b0014_single_x86:v1 /usr/sbin/init

4.数据库自动运行

#启动容器+交互式进入容器(root用户)
[root@node docker]# docker exec -it kingbase /bin/bash
[kingbase@e2792704eadb ~]$ #查看状态
[kingbase@e2792704eadb ~]$ sys_ctl -D /home/kingbase/userdata/data/ status

5.ksql访问数据库

#默认是kingbase用户
[kingbase@e2792704eadb ~]$ ksql -Ukingbase -d test -p54321#注意:su - root 会导致环境变量丢失,PATH 中没有 ksql(也无法 ksql 免密登录), 推荐使用 su root

6.容器外访问数据库

#宿主机远程访问需要加-h 及改变映射端口。非root用户(找一个客户端去执行验证)
[kingbase@node1 ~]$ /home/kingbase/Kingbase/ES/V8/Server/bin/ksql -Ukingbase -d test -p 4321 -h 192.168.40.32

7.license持久化以及更换

#容器启动后对应的 license.dat 文件会复制到 etc 持久化目录,并建立软连接。kingbase用户执行。
[kingbase@e2792704eadb ~]$ ls -l /home/kingbase/install/kingbase/bin/license.dat
[kingbase@e2792704eadb ~]$ ls -l /home/kingbase/install/kingbase/etc/
#更新容器挂载目录/mnt/data/etc 目录下的 license.dat 文件(容器内挂载目录应为/home/kingbase/userdata/ 而不是/home/kingbase/userdata/data), 进入容器后,并输入命令修改成正确权限。[kingbase@e2792704eadb ~]$ chown kingbase:kingbase /home/kingbase/userdata/etc/license.dat
[kingbase@e2792704eadb ~]$ chmod 755 /home/kingbase/userdata/etc/license.dat

8.数据库启停

#进入容器/home/kingbase/install/kingbase/bin 目录(kingbase用户)
[kingbase@e2792704eadb ~]$ /home/kingbase/install/kingbase/bin/sys_ctl -D /home/kingbase/userdata/data/ stop
[kingbase@e2792704eadb ~]$ /home/kingbase/install/kingbase/bin/sys_ctl -D /home/kingbase/userdata/data/ start

9.使用 docker logs 查看容器脚本执行日志

#root用户
[root@node docker]# docker logs kingbase
3、选项介绍

为了防止报错,可以先执行以下删除不必要的干扰。

#先查看container id,然后删除运行的容器
[root@node docker]# docker ps
CONTAINER ID [root@node docker]# docker rm -f id号

1.-p绑定端口

#(root用户)
[root@ docker]# docker run -tid --privileged -p 4321:54321 -v /mnt/data:/home/kingbase/userdata/ --name kingbase kingbase_v008r006c009b0014_single_x86:v1 /usr/sbin/init将容器内部端口绑定到宿主机端口 4321 上,在宿主机内连接该数据库宿主机可成功访问对应数据库
#找一个客户端去连接(root用户)
${安装目录}/bin/ksql -Usystem -d test -h 192.168.40.32 -p 4321

2.-v挂载目录

#使用-v 可以将容器内数据目录(/home/kingbase/userdata/)挂载到宿主机设置数据库 data 目录的持久化路径时, 需要如下设置: -v 选项冒号左侧宿主机挂载目录 (/mnt/data) 权限需要设置 755 的权限(chmod -R 755 /mnt/data), 不然会报权限 (Permission denied) 错误。-v 选项冒号右侧为容器内的挂载路径需要设置为/home/kingbase/userdata, 不然 data 目录无法持久化。[root@node docker]# docker run -tid --privileged -p 4321:54321 -v /mnt/data:/home/kingbase/userdata/ --name kingbase kingbase_v008r006c009b0014_single_x86:v1 /usr/sbin/init#查看挂载是否生效
[root@node docker]# docker inspect -f ‘{{.Mounts}}’ kingbase[{bind  /mnt/data /home/kingbase/userdata   true rprivate}]#持久化数据挂载成功。进入容器。
[root@node docker]# docker exec -it kingbase /bin/bash
[kingbase@10c45ebe9024 ~]$

3.DB_USER: 数据库用户

[root@node docker]# docker run -tid --privileged -p 4321:54321 -v /mnt/data:/home/kingbase/userdata/ -e DB_USER=kingbase --name kingbase kingbase_v008r006c009b0014_single_x86:v1[root@node docker]# docker exec -it kingbase /bin/bash[kingbase@d6b7a7d50e2e ~]$ ksql -Ukingbase -d test

4.DB_PASSWORD: 数据库初始密码

[root@localhost docker]# docker run -tid --privileged -p 4321:54321 -v /mnt/data:/home/kingbase/userdata/ -e DB_USER=kingbase -e DB_PASSWORD=123 --name kingbase kingbase_v008r006c009b0014_single_x86:v1 /usr/sbin/init#找一个客户端去访问测试
${安装目录}/bin/ksql -Ukingbase -dtest -p4321 -h 192.168.40.32

5.DB_MODE: 数据库模式

[kingbase@85ffc680f5d0 ~]$ cat /home/kingbase/userdata/data/initdb.conf |grep mode
--dbmode=oracle

6.NEED_START: 进入容器后是否启动数据库

默认是yes

7.ENCODING: 数据库启动的字符集

默认是UTF8

8.配置文件持久化及修改配置文件后生效

#启动容器后, 一些配置文件会跟着 data 目录一起持久化,包括 kingbase.conf等配置文件. 在持久化目录中修改配置文件后,使用下面的命令来生效:
[kingbase@85ffc680f5d0 ~]$ /home/kingbase/install/kingbase/bin/sys_ctl reload -D /home/kingbase/userdata/data/

9.安装正确性验证

1.#查看容器状态
[root@node ~]# docker ps 2.#看启动日志
[root@node ~]# docker logs kingbase3.#进入容器查看进程
[root@node docker]# docker exec -it kingbase /bin/bash
[kingbase@85ffc680f5d0 ~]$ /home/kingbase/install/kingbase/bin/sys_ctl -D /home/kingbase/userdata/data/ status
sys_ctl: server is running (PID: 87)

10.卸载数据库

1.#先停库
[root@node docker]# docker stop kingbase2.#删除容器
docker ps #查看
docker rm -f  id	#执行删除3.#删除镜像
docker images
docker rmi 	(IMAGE ID)
4、注意事项
1.#当使用 docker load -i kingbase.tar 命令报错时,可使用 docker import kingbase.tar 命令,尝试重新导包。2.#创建容器的的时候,可以在“docker run“命令中加--restart=always,将重启策略改为任何情况都重启。3.#docker 版本大于 20.10.0

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

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

相关文章

C++基础练习 sort函数,用于排序函数

题目&#xff1a; https://acm.hdu.edu.cn/showproblem.php?pid2039 解答&#xff1a; #include <iostream> #include <cmath> #include <algorithm> using namespace std;double a[3]; int main(){int n;cin>>n;while(n--){cin>>a[0]>>…

棱镜观察|EMB“重构”卡钳,车企降本压力与Brembo困局

传统制动卡钳市场&#xff0c;正在迎来变革时刻。 一直以来&#xff0c;采埃孚、大陆集团、日立安斯泰莫等外资供应商占据中国乘用车卡钳前装市场&#xff08;包括前制动卡钳和后集成EPB卡钳&#xff09;的半壁江山。同时&#xff0c;伯特利、亚太股份、万向、弗迪等中国供应商…

《颠覆传统:CSS遮罩的图像创意设计指南》

想象有一块神奇的模板&#xff0c;上面有各种形状的镂空区域&#xff0c;当我们将这块模板覆盖在图像上时&#xff0c;只有透过镂空区域才能看到图像的部分&#xff0c;而模板遮挡的地方则被隐藏起来&#xff0c;这便是CSS遮罩的核心概念。遮罩&#xff0c;简单来说&#xff0c…

5.基于神经网络的时间序列预测

近年来&#xff0c;已经开发了一些深度学习方法并将其应用于单变量时间预测场景&#xff0c;其中时间序列由在等时间增量上按顺序记录的单个观测数据组成。 5.1 将深度学习用于时间序列预测的原因 机器学习的目标是提取特征来训练模型。模型将输入数据&#xff08;例如图片&am…

【软考高级系统架构论文】论软件设计方法及其应用

论文真题 软件设计 (Software Design,SD) 根据软件需求规格说明书设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及程序流程等,形成软件的具体设计方案。软件设计把许多事物和问题按不同的层次和角度进行抽象,将问题或事物进行模块化分解,以便更容易解决…

什么是水平扩展

什么是水平扩展 在现代系统架构设计中&#xff0c;可扩展性&#xff08;Scalability&#xff09;是衡量系统面对业务增长时应对能力的重要指标。而“水平扩展”&#xff08;Horizontal Scaling&#xff09;&#xff0c;又称为“横向扩展”或“扩容节点”&#xff0c;正是应对高…

掌握openpyxl:Excel自动化处理全指南

openpyxl基础用法 openpyxl 是一个用于处理 Excel 文件&#xff08;.xlsx/.xlsm&#xff09;的 Python 库&#xff0c;支持读取、修改和创建 Excel 文档。以下是其常见用法的详细介绍&#xff1a; 一、基础操作&#xff1a;打开与保存文件 from openpyxl import load_workbo…

FastGPT:开启大模型应用新时代(4/6)

摘要&#xff1a;FastGPT是一种基于大语言模型&#xff08;LLM&#xff09;的知识库问答系统&#xff0c;致力于提供高效、精准的自然语言处理服务。它允许用户构建本地知识库以增强AI的理解能力&#xff0c;通过将用户的问题与知识库信息匹配推理&#xff0c;生成有针对性的回…

在MyBatis中$和#有什么区别

在 MyBatis 中&#xff0c;${} 和 #{} 是两种处理 SQL 参数的占位符&#xff0c;它们在实现机制、安全性、使用场景上存在显著差异。以下是详细对比&#xff1a; 核心区别对比 特性#{}${}底层机制预编译占位符&#xff08;PreparedStatement&#xff09;字符串直接替换安全性…

湖北理元理律师事务所债务优化方案:平衡还款与生活的法律实践

在个人债务问题日益突出的当下&#xff0c;如何科学规划还款路径成为社会性难题。湖北理元理律师事务所基于多年实务经验&#xff0c;提出“可持续债务优化”模型&#xff0c;其核心在于通过法律工具实现三重平衡&#xff1a; 债权债务的法律平衡&#xff1a;严格依据《民法典…

使用 Isaac Sim 模拟机器人

前言 将 2D 激光雷达数据从 Isaac Sim 流式传输至 ROS 2&#xff0c;并通过 RViz 进行可视化。通过激光雷达数据监控机器人与环境的交互&#xff0c;从而在仿真环境中提升机器人的感知能力。 概览 欢迎来到 入门指南&#xff1a;在 Isaac Sim 中模拟您的第一个机器人 课程。我…

quartz 表达式最近10次执行时间接口编写

Nuget安装 <PackageReference Include"CronExpressionDescriptor" Version"2.41.0" /> <PackageReference Include"CronExpressionDescriptor-zh-CN" Version"2.32.0" /> <PackageReference Include"Quartz"…

解锁数据宝藏:数据挖掘之数据预处理全解析

目录 一、引言&#xff1a;数据预处理 —— 数据挖掘的基石二、数据预处理的重要性2.1 现实数据的问题剖析2.2 数据预处理的关键作用 三、数据预处理的核心方法3.1 数据清洗3.1.1 缺失值处理3.1.2 离群点处理3.1.3 噪声处理 3.2 数据集成3.2.1 实体识别3.2.2 冗余处理3.2.3 数据…

React+Taro创建小程序

第一步&#xff1a;首先确认是否安装Node.js和npm 如果已安装Node.js和npm,以下可以查询 node -v npm -v 第二步&#xff1a;安装Taro CLI npm install -g tarojs/cli 第三步&#xff1a;创建项目 taro init my-react-taro-app 然后可以看到&#xff0c;下图 第四步&…

佳能Canon TS3100 Series打印机信息

打印功能 打印速度&#xff1a;黑白约 7.7 页 / 分钟&#xff0c;彩色约 4 页 / 分钟。打印分辨率&#xff1a;最高可达 48001200dpi&#xff0c;墨滴最小间距为 1/4800 英寸&#xff0c;能够保证高质量的输出&#xff0c;使文字清晰、色彩鲜艳。打印宽度&#xff1a;203.2 毫米…

家用电脑搭建可外网访问的网站服务器操作流程

在互联网时代&#xff0c;拥有一个属于自己的网站是展示个人风采、分享知识经验、开展线上业务的绝佳方式。你是否想过&#xff0c;利用家中闲置的电脑&#xff0c;就能搭建出一个可以被外网访问的网站服务器&#xff1f;这不仅能满足个性化需求&#xff0c;还能节省租用专业服…

CSS知识补充 --- 控制继承

每天学习一点点&#xff01;&#xff01;&#xff01; 总所周知&#xff0c;CSS某些属性可以继承&#xff0c;然后今天看到MDN的时候看到了CSS也可以控制继承&#xff0c;感觉很有意思&#xff0c;所以记录一下&#xff1a; 控制继承有5个属性值&#xff0c;分别&#xff1a;in…

如何使用Ant Design Blazor组件在列表页弹窗增加修改数据

在winform中首次使用net8做页面。列表页想使用Ant Design组件的弹窗组件实现。但第一次在winform项目中使用ant design组件&#xff0c;列表页面&#xff0c;点击新增&#xff0c;或者编辑操作实现弹窗页面&#xff0c;弹窗页面想使用模板页razor页来实现&#xff0c;而不是用m…

嵌入式学习 51单片机01

一、框架 1、CPU&#xff08;Central Processing Unit&#xff0c;中央处理单元&#xff09;‌是计算机的核心部件&#xff0c;负责执行计算机指令和处理数据。 2、MCU&#xff08;Microcontroller Unit&#xff0c;微控制单元&#xff09;‌是一种将中央处理器、内存、输入输出…

C语言之内存对齐

一、为什么要内存对齐 Arm对内存的访问支持字&#xff08;4byte&#xff09;、半字&#xff08;2byte&#xff09;、字节&#xff08;1byte&#xff09;的直接访问&#xff0c;但是呢他们是有一定的要求的&#xff1a; 存取字时要求地址按字对齐&#xff0c;也就是地址要是4的…