docker 下安装 kes
OS 版本:Red Hat Enterprise Linux Server release 7.9 (Maipo)
内核版本:5.4.17-2102.201.3.el7uek.x86_64
其实就是Oracle 的linux 7U9
- 首先安装 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.
- 导入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 模式的理解好像有偏差啊。。
明天继续研究下
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库