金仓数据库制作docker镜像

制作KES单机 镜像操作指导

------------------------------------------------------

家里测试环境:

192.168.2.129  root/kingbase  龙芯,麒麟v10

   路径:/root/qsruan

192.168.2.125  root/kingbase 飞腾,麒麟v10

   #root登录后,更改环境变量

export PATH=$PATH:/home/kingbase/docker

cd /home/kingbase/qsruan

-----------------------------------------------------

步骤一:准备材料说明

1、Dockerfile   #docker编译

2、initKDB.sh   #初始化数据库脚本,普通用户执行的

3、KingbaseES.tar.gz   #KES的服务器包

4、kylin_v10_mips.tar    #kylinv10的镜像包

5、rootKDB.sh     #root用户执行的,主要完成两个步骤:修改data路径权限、切换普通用户初始化数据库

步骤二:导入系统镜像

docker load -i kylin_v10_mips.tar kylinv10:v1.0

Loaded image: kdbes:v1

步骤三:创建一个目录,把准备文件放进去

[root@2 docker]# pwd

/root/docker

[root@2 docker]# ls

Dockerfile  initKDB.sh  KingbaseES.tar.gz  rootKDB.sh

步骤四:build镜像

docker build -t kdb_mips_kylinv10:v1 .

镜像完成制作。

其他说明:

  1. 持久化时数据挂载目录为:/home/test/userdata/
  2. 默认的数据库端口为54321,根据情况做映射

镜像的使用

步骤一:导入系统镜像

docker load -i kdb_mips_kylinv10.tar kylinv10_with_kdb:v1.0

步骤二:启动容器

#直接启动

docker run -itd kylinv10_with_kdb:v1.0 /bin/bash

#端口映射启动

docker run -P -itd kylinv10_with_kdb:v1.0 /bin/bash

docker run -p 54321:54321 -itd kylinv10_with_kdb:v1.0 /bin/bash

#外挂存储启动

docker run run -p 54321:54321 -v /home/test/data:/home/test/userdata -itd kylinv10_with_kdb:v1.0 /bin/bash

步骤三:使用服务

(略)

相关文件说明

Dockerfile流程说明:

#cat Dockerfile

FROM kylinv10:v1.0

MAINTAINER  KDBDEV support@kingbase.com.cn

USER root

EXPOSE 54321

ENV PATH /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin

COPY initKDB.sh /home/test/initKDB.sh

COPY rootKDB.sh /root/rootKDB.sh

COPY KingbaseES.tar.gz /home/test/KingbaseES.tar.gz

WORKDIR /home/test/

RUN tar xvf KingbaseES.tar.gz

RUN chown -R test:test KingbaseES

RUN chown -R test:test initKDB.sh

RUN rm -rf KingbaseES.tar.gz

WORKDIR /root

ENTRYPOINT ["bash","/root/rootKDB.sh"]

RootKDB.sh

[root@2 ]# cat rootKDB.sh

#!/bin/bash

mkdir -p /home/test/userdata/

chown -R test:test /home/test/userdata/

su - test -c "/home/test/initKDB.sh"

initKDB.sh

[root@2 qsruan]# cat initKDB.sh

#!/bin/bash

DB_PATH=/home/test/KingbaseES

DATA_DIR=/home/test/userdata/data

LOG_FILE=${DATA_DIR}/logfile

check_is_init(){

declare -g DATABASE_ALREADY_EXISTS

if [ -d "${DATA_DIR}" ];then

        DATABASE_ALREADY_EXISTS='true'

fi

}

db_init(){

        mkdir -p ${DATA_DIR}

        chown -R test:test ${DATA_DIR}

        ${DB_PATH}/bin/initdb -USYSTEM -W123456 -D${DATA_DIR} --case-insensitive

}

check_is_init

if [ -z "${DATABASE_ALREADY_EXISTS}" ];then

        db_init

fi

${DB_PATH}/bin/sys_ctl -D ${DATA_DIR} -l ${LOG_FILE} start

sleep 10

tailf  ${LOG_FILE}

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值