Docker部署KingbaseES数据库操作指南

 更新时间:2026年04月23日 15:43:26   作者:云边有个稻草人  
本文主要介绍了Docker部署KingbaseES数据库操作指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

本文详细介绍了KingbaseES V9数据库在Docker环境下的部署流程。首先需要准备Linux服务器和Docker环境(版本需≥20.10.0),导入官方kingbase.tar镜像包。部署步骤包括:导入镜像、设置挂载目录(注意权限设置)、运行容器(支持多种环境变量配置)、数据库自动运行及验证。文章还提供了ksql访问数据库、容器日志查看、配置文件持久化等方法,并说明了正确性验证和卸载步骤。关键注意事项包括Docker版本要求、挂载目录权限设置以及容器自启动配置等,为KingbaseES数据库的容器化部署提供了完整指导。

一、环境准备

我这边用的是KingbaseES V9(V009R002C010)Oracle 兼容版,环境是 Linux 服务器,Docker 版本必须大于 20.10.0,低版本会出各种兼容问题,提前升级好。

提前准备好金仓官方提供的kingbase.tar镜像包,这是整个部署的基础。

二、安装步骤

1. 导入镜像

获取金仓数据库镜像包kingbase.tar,导入到本机docker镜像仓库中:

docker load -i kingbase.tar

查看导入的镜像:

docker images

执行后应看到类似输出:

REPOSITORY     TAG     IMAGE ID       CREATED       SIZE
kingbase       v1      84c4c61cc40e   3 weeks ago   794MB

注意:当使用docker load -i kingbase.tar命令报错时,可使用docker import kingbase.tar命令尝试重新导包。

2. 设置挂载目录

使用-v选项可以将容器内数据目录挂载到宿主机。设置数据库data目录的持久化路径时,需要注意:

  • -v选项冒号左侧宿主机挂载目录(例如/mnt/data)权限需要设置为755
  • -v选项冒号右侧为容器内的挂载路径,需要设置为/home/kingbase/userdata,不然data目录无法持久化
chmod -R 755 /mnt/data

3. 运行镜像

环境变量说明

数据库默认用户名:system 数据库默认密码:12345678ab 数据库默认data目录:/home/kingbase/userdata/data

支持的环境变量:

  • NEED_START:进入容器后是否启动数据库,yes(默认)/no
  • DB_USER:数据库用户
  • DB_PASSWORD:数据库初始密码
  • DB_MODE:数据库模式,支持oracle/pg/mysql
  • ENCODING:数据库启动的字符集,支持utf8(默认)

最小启动命令

docker run -tid --privileged \
--name kingbase \
kingbase:v1 /usr/sbin/init

完整启动命令示例

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:v1 /usr/sbin/init

提示:创建容器的时候,可以在docker run命令中增加--restart=always选项,保证Linux系统重启后容器自动运行。

4. 数据库自动运行

容器启动后,数据库即开始运行,用户无须手动启动数据库(数据库配置正确或者处于初始态)。

查看容器状态:

docker ps

进入容器:

docker exec -it kingbase /bin/bash

查看数据库运行状态:

sys_ctl -D /home/kingbase/userdata/data/ status

正常输出显示:

sys_ctl: server is running (PID: 76)

5. ksql访问数据库

使用ksql进行访问:

ksql -U kingbase -d test -p 54321

仅输入ksql免密访问:

ksql

注意su - root会导致环境变量丢失,PATH中没有ksql(也无法ksql免密登录),推荐使用su root

6. 容器外访问数据库

宿主机远程访问需要加-h及改变映射端口:

./kingbase/bin/ksql -U system -d test -h 10.10.12.252 -p 4321

输入密码后即可访问。

7. 查看容器日志

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

docker logs kingbase

正常日志中应包含:

waiting for server to start... done
server started

8. 配置文件持久化

启动容器后,相关配置文件会随着data目录一起持久化,包括kingbase.conf、kingbase_auto.conf、sys_hba.conf等。

在持久化目录中修改配置文件后,使用如下命令使修改生效:

/home/kingbase/install/kingbase/bin/sys_ctl reload -D /home/kingbase/userdata/data/

9. 安装正确性验证

安装完成后,可通过以下方式进行验证:

(1)查看安装后容器的状态

docker ps -a

(2)使用docker logs命令检查数据库启动日志

docker logs kingbase

(3)进入容器检查数据库进程

docker exec -it kingbase /bin/bash
sys_ctl -D /home/kingbase/userdata/data/ status

10. License持久化及更换

License文件会随着data目录持久化,更换license时替换对应文件并修改权限即可。

三、卸载数据库

卸载步骤按顺序执行:

1. 停止容器

docker stop kingbase

2. 删除容器

docker rm kingbase

3. 删除镜像

docker rmi kingbase:v1

四、注意

  • 当使用docker load -i kingbase.tar命令报错时,可使用docker import kingbase.tar命令尝试重新导包。
  • 创建容器的时候,可以在docker run命令中增加--restart=always选项,保证Linux系统重启后容器自动运行。
  • docker版本需要大于20.10.0。

到此这篇关于Docker部署KingbaseES数据库操作指南的文章就介绍到这了,更多相关Docker部署KingbaseES数据库操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker保存镜像和导入镜像文件完整图文教程

    Docker保存镜像和导入镜像文件完整图文教程

    这篇文章主要给大家介绍了关于Docker保存镜像和导入镜像文件的完整图文教程,适用于备份、迁移和版本控制等场景,文中通过代码及图文介绍的非常详细,需要的朋友可以参考下
    2024-12-12
  • 解决docker拉取镜像报错:error pulling image configuration:(kafka)

    解决docker拉取镜像报错:error pulling image configurat

    在使用Docker拉取Kafka镜像时可能会遇到"error pulling image configuration"的错误,这可以通过编辑Docker配置文件并重启Docker服务来解决,具体步骤包括:1. 编辑Docker配置文件;2. 使用命令systemctl restart docker重启Docker服务
    2024-11-11
  • Docker重启命令的使用详解

    Docker重启命令的使用详解

    Docker重启命令包括使用systemctl、service命令重启Docker服务,以及使用dockerrestart命令重启Docker容器,在重启Docker服务之前,建议先停止所有正在运行的容器,并确保做好相应的准备和备份
    2025-03-03
  • 二进制部署docker的超详细教程

    二进制部署docker的超详细教程

    部署环境并不会一直顺利,有些时候因为时内网环境,无法使用yum等情况,对于一些中间件的部署缺少依赖,我们可以使用二进制包的形式部署docker,这篇文章主要给大家介绍了关于二进制部署docker的相关资料,需要的朋友可以参考下
    2024-04-04
  • 2026年Docker常用命令速查表(收藏这一篇就够了)

    2026年Docker常用命令速查表(收藏这一篇就够了)

    因为日常需要维护好几台服务器,所以Docker用了很多年,踩了不少坑,这篇把最常用的命令整理出来,按场景分类,方便自己查阅,也分享给需要的朋友
    2026-04-04
  • docker报错x509:certificate has expired or is not yet valid问题及解决

    docker报错x509:certificate has expired or 

    这篇文章主要介绍了docker报错x509:certificate has expired or is not yet valid问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • Docker容器连接相互通信的实现

    Docker容器连接相互通信的实现

    这篇文章主要介绍了Docker容器连接相互通信的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • docker环境变量配置不生效/ect/profile的解决方法

    docker环境变量配置不生效/ect/profile的解决方法

    docker在使用过程中,有时候自定义容器实例中的某些配置文件,本文主要介绍了docker环境变量配置不生效/ect/profile的解决方法,感兴趣的可以了解一下
    2023-08-08
  • redhat7.7安装docker全过程

    redhat7.7安装docker全过程

    文章详细介绍了如何从二进制文件安装Docker,并涵盖了安装过程中的关键步骤,包括准备工作、卸载旧版本、设置镜像仓库、启动Docker、设置开机自启动以及配置镜像加速等
    2026-01-01
  • Docker基础教程之Dockerfile语法详解

    Docker基础教程之Dockerfile语法详解

    这篇文章主要给大家介绍了关于Docker基础教程之Dockerfile语法的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Docker具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07

最新评论