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.pswp.cn/news/910218.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/910218.shtml
英文地址,請注明出處:http://en.pswp.cn/news/910218.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋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的…