docker 下安装 kes

OS 版本:Red Hat Enterprise Linux Server release 7.9 (Maipo)
内核版本:5.4.17-2102.201.3.el7uek.x86_64
其实就是Oracle 的linux 7U9

  1. 首先安装 docker 环境

依赖包不多

https://vault.centos.org/7.9.2009/extras/x86_64/Packages/
https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/?spm=a2c6h.25603864.0.0.7a425f74ksKPMV

下载

containerd.io-1.6.9-3.1.el7.x86_64.rpm
container-selinux-2.119.1-1.c57a6f9.el7.noarch.rpm
container-selinux-2.95-2.el7_6_2.107-1.el7_6.noarch.drpm
docker-buildx-plugin-0.14.1-1.el7.x86_64.rpm
docker-ce-24.0.5-1.el7.x86_64.rpm
docker-ce-cli-26.1.4-1.el7.x86_64.rpm
docker-ce-rootless-extras-24.0.5-1.el7.x86_64.rpm
docker-compose-plugin-2.6.0-3.el7.x86_64.rpm
fuse3-3.6.1-4.el7.x86_64.rpm
fuse3-devel-3.6.1-4.el7.x86_64.rpm
fuse3-libs-3.6.1-4.el7.x86_64.rpm
fuse-overlayfs-0.7.2-6.el7_8.x86_64.rpm
slirp4netns-0.4.3-4.el7_8.x86_64.rpm

依次安装后

[root@localhost ~]# yum install container-selinux-2.119.1-1.c57a6f9.el7.noarch.rpm 
[root@localhost ~]# yum install docker-compose-plugin-2.6.0-3.el7.x86_64.rpm
[root@localhost ~]# yum install docker-buildx-plugin-0.14.1-1.el7.x86_64.rpm 
[root@localhost ~]# yum install docker-ce-cli-26.1.4-1.el7.x86_64.rpm
[root@localhost ~]# yum install containerd.io-1.6.9-3.1.el7.x86_64.rpm
[root@localhost ~]# yum install fuse3*
[root@localhost ~]# yum install fuse-overlayfs-0.7.2-6.el7_8.x86_64.rpm 
[root@localhost ~]# yum install slirp4netns-0.4.3-4.el7_8.x86_64.rpm 
[root@localhost ~]# yum install docker-ce-rootless-extras-24.0.5-1.el7.x86_64.rpm  docker-ce-24.0.5-1.el7.x86_64.rpm

检查版本,此处为cli 的版本

docker -v
Docker version 26.1.4, build 5650f9b

启动

[root@localhost ~]# systemctl start docker

检查状态

[root@localhost ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2024-12-30 16:17:08 CST; 2s ago
     Docs: https://docs.docker.com
 Main PID: 6227 (dockerd)
    Tasks: 7
   Memory: 28.1M
   CGroup: /system.slice/docker.service
           └─6227 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Dec 30 16:17:07 localhost.localdomain dockerd[6227]: time="2024-12-30T16:17:07.835327963+08:00" level=info msg="Loading containers: start."
Dec 30 16:17:08 localhost.localdomain dockerd[6227]: time="2024-12-30T16:17:08.369928119+08:00" level=info msg="Firewalld: interface docker0 alrea...turning"
Dec 30 16:17:08 localhost.localdomain dockerd[6227]: time="2024-12-30T16:17:08.600182251+08:00" level=info msg="Default bridge (docker0) is assign...address"
Dec 30 16:17:08 localhost.localdomain dockerd[6227]: time="2024-12-30T16:17:08.697889016+08:00" level=info msg="Firewalld: interface docker0 alrea...turning"
Dec 30 16:17:08 localhost.localdomain dockerd[6227]: time="2024-12-30T16:17:08.800447560+08:00" level=info msg="Loading containers: done."
Dec 30 16:17:08 localhost.localdomain dockerd[6227]: time="2024-12-30T16:17:08.817129828+08:00" level=warning msg="Not using native diff for overl...overlay2
Dec 30 16:17:08 localhost.localdomain dockerd[6227]: time="2024-12-30T16:17:08.817374293+08:00" level=info msg="Docker daemon" commit=a61e2b4 grap...n=24.0.5
Dec 30 16:17:08 localhost.localdomain dockerd[6227]: time="2024-12-30T16:17:08.817467148+08:00" level=info msg="Daemon has completed initialization"
Dec 30 16:17:08 localhost.localdomain dockerd[6227]: time="2024-12-30T16:17:08.839474125+08:00" level=info msg="API listen on /run/docker.sock"
Dec 30 16:17:08 localhost.localdomain systemd[1]: Started Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.
  1. 导入tar包到本机docker镜像仓库
    tar 下载地址
https://download.kingbase.com.cn/xzzx/index.htm

本次使用基于Linux 的 docker镜像,非精简版

[root@localhost ~]#  docker load -i kdb_x86_64_V009R001C002B0014.tar 
96723fcc60ed: Loading layer [==================================================>]  309.9MB/309.9MB
3a1017d60ea0: Loading layer [==================================================>]  22.53kB/22.53kB
cd099deb41d7: Loading layer [==================================================>]  7.168kB/7.168kB
c248d1eae5c2: Loading layer [==================================================>]  8.192kB/8.192kB
73aa8302d2a6: Loading layer [==================================================>]  8.704kB/8.704kB
2c81354f8940: Loading layer [==================================================>]  434.5MB/434.5MB
6348b464ae81: Loading layer [==================================================>]  8.192kB/8.192kB
d7ab7cc989d0: Loading layer [==================================================>]  5.632kB/5.632kB
acf47021abde: Loading layer [==================================================>]  3.072kB/3.072kB
73096ce7f3fd: Loading layer [==================================================>]   5.12kB/5.12kB
Loaded image: kingbase_v009r001c002b0014_single_x86:v1

导入完成后,查看 docker镜像仓库

[root@localhost ~]# docker images
REPOSITORY                              TAG       IMAGE ID       CREATED        SIZE
kingbase_v009r001c002b0014_single_x86   v1        a12899877a42   2 months ago   733MB

测试使用最小启动命令启动

[root@localhost ~]# docker run -tid --privileged \
--name kbtest  \
kingbase_v009r001c002b0014_single_x86:v1 /usr/sbin/init
b476946963b6ff23d2007764c00cf7db9f2fbbb1215de9be6b5e4be253fdbce3

检查docker 进程

[root@localhost ~]# docker ps
CONTAINER ID   IMAGE                                      COMMAND                  CREATED              STATUS              PORTS       NAMES
b476946963b6   kingbase_v009r001c002b0014_single_x86:v1   "/bin/bash /home/kin…"   About a minute ago   Up About a minute   54321/tcp   kbtest

进入容器内部,此处注意it 后面跟着的是docker ps 查询的CONTAINER ID

[root@localhost ~]# docker exec -it b476946963b6 /bin/bash


Welcome to 5.4.17-2102.201.3.el7uek.x86_64

System information as of time: 	Mon 30 Dec 2024 08:23:11 AM UTC

System load: 	0.02
Processes: 	19
Memory used: 	14.5%
Swap used: 	0.0%
Usage On: 	65%
Users online: 	0

容器内部也提供了 ps 命令,这个进程看着和 PG 差不多啊

[kingbase@b476946963b6 ~]$ ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
kingbase     1     0  0 08:20 pts/0    00:00:00 /bin/bash /home/kingbase/docker-entrypoint.sh /usr/sbin/init
kingbase   110     1  0 08:20 ?        00:00:00 /home/kingbase/install/kingbase/bin/kingbase -D /home/kingbase/userdata/data
kingbase   111   110  0 08:20 ?        00:00:00 kingbase: logger   
kingbase   113   110  0 08:20 ?        00:00:00 kingbase: checkpointer   
kingbase   114   110  0 08:20 ?        00:00:00 kingbase: background writer   
kingbase   115   110  0 08:20 ?        00:00:00 kingbase: walwriter   
kingbase   116   110  0 08:20 ?        00:00:00 kingbase: autovacuum launcher   
kingbase   117   110  0 08:20 ?        00:00:00 kingbase: archiver   last was 000000010000000000000004
kingbase   118   110  0 08:20 ?        00:00:00 kingbase: stats collector   
kingbase   119   110  0 08:20 ?        00:00:00 kingbase: kwr collector   
kingbase   120   110  0 08:20 ?        00:00:00 kingbase: ksh writer   
kingbase   121   110  0 08:20 ?        00:00:00 kingbase: ksh collector   
kingbase   122   110  0 08:20 ?        00:00:00 kingbase: logical replication launcher   
kingbase   148     1  0 08:20 pts/0    00:00:00 sleep 1000
kingbase   151     0  0 08:23 pts/1    00:00:00 /bin/bash
kingbase   194   151  0 08:24 pts/1    00:00:00 ps -ef

好像不是很能用ksql 连接,不愧是最小启动命令

[kingbase@b476946963b6 ~]$ ksql
ksql: error: could not connect to server: FATAL:  database "system" does not exist

测试停库

[kingbase@b476946963b6 ~]$ cd /home/kingbase/install/kingbase/bin/
[kingbase@b476946963b6 bin]$ ./sys_ctl -D /home/kingbase/userdata/data/ stop
waiting for server to shut down.... done
server stopped

测试启动

[kingbase@b476946963b6 bin]$ ./sys_ctl -D /home/kingbase/userdata/data/ start
waiting for server to start....2024-12-30 09:20:10.855 UTC [298] LOG:  config the real archive_command string as soon as possible to archive WAL files
2024-12-30 09:20:10.860 UTC [298] LOG:  sepapower extension initialized
2024-12-30 09:20:10.865 UTC [298] LOG:  starting KingbaseES V009R001C002B0014 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit
2024-12-30 09:20:10.865 UTC [298] LOG:  listening on IPv4 address "0.0.0.0", port 54321
2024-12-30 09:20:10.866 UTC [298] LOG:  listening on IPv6 address "::", port 54321
2024-12-30 09:20:10.870 UTC [298] LOG:  listening on Unix socket "/tmp/.s.KINGBASE.54321"
2024-12-30 09:20:10.919 UTC [298] LOG:  redirecting log output to logging collector process
2024-12-30 09:20:10.919 UTC [298] HINT:  Future log output will appear in directory "sys_log".
 done
server started

看一下数据文件

[kingbase@b476946963b6 bin]$ ll /home/kingbase/userdata/
total 4.0K
drwx------. 23 kingbase kingbase 4.0K Dec 30 09:20 data
drwxrwxr-x.  2 kingbase kingbase   25 Dec 30 08:20 etc

[kingbase@b476946963b6 bin]$ ll /home/kingbase/userdata/data/
total 76K
drwx------. 7 kingbase kingbase   67 Dec 30 08:20 base
-rw-------. 1 kingbase kingbase   46 Dec 30 09:20 current_logfiles
drwx------. 2 kingbase kingbase 4.0K Dec 30 09:20 global
-rw-------. 1 kingbase kingbase  336 Dec 30 08:20 initdb.conf
-rw-------. 1 kingbase kingbase   88 Dec 30 08:20 kingbase.auto.conf
-rw-------. 1 kingbase kingbase  28K Dec 30 08:20 kingbase.conf
-rw-------. 1 kingbase kingbase   81 Dec 30 09:20 kingbase.opts
-rw-------. 1 kingbase kingbase   86 Dec 30 09:20 kingbase.pid
-rw-------. 1 kingbase kingbase  806 Dec 30 08:20 logfile
drwx------. 3 kingbase kingbase   19 Dec 30 08:20 sys_aud
drwx------. 2 kingbase kingbase    6 Dec 30 08:20 sys_bulkload
drwx------. 2 kingbase kingbase    6 Dec 30 08:20 sys_commit_ts
drwx------. 2 kingbase kingbase   54 Dec 30 08:20 sys_csnlog
drwx------. 2 kingbase kingbase    6 Dec 30 08:20 sys_dynshmem
-rw-------. 1 kingbase kingbase 4.3K Dec 30 08:20 sys_hba.conf
-rw-------. 1 kingbase kingbase 1.4K Dec 30 08:20 sys_ident.conf
drwx------. 2 kingbase kingbase   82 Dec 30 09:20 sys_log
drwx------. 4 kingbase kingbase   68 Dec 30 09:19 sys_logical
drwx------. 4 kingbase kingbase   36 Dec 30 08:20 sys_multixact
drwx------. 2 kingbase kingbase   18 Dec 30 09:20 sys_notify
drwx------. 2 kingbase kingbase    6 Dec 30 08:20 sys_replslot
drwx------. 2 kingbase kingbase    6 Dec 30 08:20 sys_serial
drwx------. 2 kingbase kingbase    6 Dec 30 08:20 sys_snapshots
drwx------. 2 kingbase kingbase    6 Dec 30 09:20 sys_stat
drwx------. 2 kingbase kingbase   92 Dec 30 09:21 sys_stat_tmp
drwx------. 2 kingbase kingbase    6 Dec 30 08:20 sys_tblspc
drwx------. 2 kingbase kingbase    6 Dec 30 08:20 sys_twophase
-rw-------. 1 kingbase kingbase    3 Dec 30 08:20 SYS_VERSION
drwx------. 3 kingbase kingbase 4.0K Dec 30 09:19 sys_wal
drwx------. 2 kingbase kingbase   18 Dec 30 08:20 sys_xact

看完了就停止容器

[root@localhost ~]# docker ps
CONTAINER ID   IMAGE                                      COMMAND                  CREATED             STATUS             PORTS       NAMES
b476946963b6   kingbase_v009r001c002b0014_single_x86:v1   "/bin/bash /home/kin…"   About an hour ago   Up About an hour   54321/tcp   kbtest
[root@localhost ~]# docker stop b476946963b6

b476946963b6
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

并且删除

[root@localhost ~]# docker rm b476946963b6
b476946963b6

测试完整启动,试一下mysql 模式

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=mysql  \
--name kbtest  \
kingbase_v009r001c002b0014_single_x86:v1 /usr/sbin/init

进程正常

[root@localhost ~]# docker ps
CONTAINER ID   IMAGE                                      COMMAND                  CREATED         STATUS         PORTS                                         NAMES
10ebbc76740d   kingbase_v009r001c002b0014_single_x86:v1   "/bin/bash /home/kin…"   4 seconds ago   Up 3 seconds   0.0.0.0:4321->54321/tcp, :::4321->54321/tcp   kbtest

进容器看看

[root@localhost ~]# docker exec -it kbtest /bin/bash


Welcome to 5.4.17-2102.201.3.el7uek.x86_64

System information as of time: 	Mon 30 Dec 2024 09:28:11 AM UTC

System load: 	0.05
Processes: 	19
Memory used: 	14.8%
Swap used: 	0.0%
Usage On: 	65%
Users online: 	0


[kingbase@10ebbc76740d ~]$ 
[kingbase@10ebbc76740d ~]$ ksql -Ukingbase -d test -p54321
Type "help" for help.

看着不像mysql 。。。

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

果然

[kingbase@10ebbc76740d ~]$ ksql -Ukingbase -d test -p54321
Type "help" for help.

test=# show parameter log
test-# show parameter

啥结果都没有
对这个Oracle 模式的理解好像有偏差啊。。
明天继续研究下

posted @   Coye  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示