kingbase:
下载地址: https://www.kingbase.com.cn/download.html
包含: KingbaseES数据库安装包 和 KingbaseES数据库Docker镜像
kingbase需要授权文件, 分为: 标准版-90天 , 专业版: 90天 , 企业版: 90天 , 开发版: 365天 , 先下载一个docker镜像和开发版授权试试看
1. 导入镜像:
docker load -i kingbase.tar
2.
docker images
mkdir -p /opt/kingbase
mkdir -p /opt/kingbase/data
chmod -R 755 /opt/kingbase/data
3.运行容器:
docker run -idt --privileged -p ${hostport}:${containerport} \
–v ${hostpath}:${containerpath} \
--restart=always \
-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
示例如下:
docker run -tid --privileged \
-p 4321:54321 \
-v /opt/kingbase/data:/home/kingbase/userdata/ \
--restart=always \
-e NEED_START=yes \
-e DB_USER=kingbase \
-e DB_PASSWORD=123456 \
-e DB_MODE=oracle \
--name kingbase \
kingbase:v1 /usr/sbin/init
查看容器状态,使用 docker ps -a 查询容器id 。
检查数据库状态,进入容器,检查金仓数据库的进程,数据库在容器内默认端口为 54321 。
docker exec -it kingbase /bin/bash
[kingbase@35dffd5f9021 ~]$ sys_ctl -D /home/kingbase/userdata/data/ status
sys_ctl: server is running (PID: 76)
/home/kingbase/install/kingbase/bin/kingbase "-D" "/home/kingbase/userdata/data"
1. 停止容器,容器停止时可以通过指定容器ID或容器名称进行停止
# 使用容器ID进行停止容器
docker stop ${container_id}
# 或使用容器名称停止
docker stop ${container_name}
2.
删除容器,容器删除时可以通过指定容器 ID 或容器名称进行删除
# 使用容器ID进行删除容器
docker rm ${container_id}
# 或使用容器名称删除容器
docker rm ${container_name}
---Docker容器运行参数说明
参数 参数说明
--name 为容器指定一个名称。
-it -i 保持容器的STDIN打开, 允许与容器进行交互。-t 为容器分配一个终端,与 -i 一起使用进行交互式操作。
-d 以后台模式运行容器。
-p 将容器的端口映射到主机的端口。<宿主机端口>:<容器端口>
--privileged 为数据库容器设置宿主机的权限。
-v 将主机的目录挂载到容器中。 <主机路径>:<容器路径>
-e 设置容器内的环境变量,可修改的环境变量参照。详见`Docker容器环境变量参数列表``
--restart=always 设置容器在Linux系统重启后,容器自动运行。
kingbase:v1 设置容器的镜像名称,此项根据实际金仓数据库容器镜像名进行修改。
使用 -p 选项绑定端口
将容器内部端口绑定到宿主机端口4321上,在宿主机内连接该数据库.
---Docker容器环境变量参数列表
环境变量 参数默认值 参数说明
DB_USER system 数据库用户名
DB_PASSWORD 12345678ab 数据库密码
DB_MODE oracle 数据库兼容模式
ENCODING utf8 数据库启动字符集
NEED_START yes 容器部署是否启动数据库
ENABLE_CI yes 配置数据库大小写不敏感
----DB_MODE: 数据库模式
数据库模式: 支持oracle/pg/mysql/sqlserver (请确认对应镜像内数据库版本支持的数据库模式之后再进行配置)
不同数据库模式下大小写敏感说明:
oracle模式可以通过-e ENABLE_CI=yes配置大小写不敏感
pg模式初始化不带--enable-ci选项
mysql模式初始化带--enable-ci选项
sqlserver模式的--eanble-ci选项设置不生效
本示例中: -p 4321:54321 , 4321是宿主机端口, 54321是容器端口 , vagrant的ubuntu端口是:4321 , 容器内kingbase端口为54321
如果要在win10中访问docker中的kingbase,需要配置vagrantfile文件:
config.vm.network "forwarded_port", guest: 4321, host: 14321 #kingbase,在win10上访问kingbase, 使用14321端口
guest是宿主机(简单理解就是:guest是客人)端口 , host是: win10的端口
最终流程是: 在win10上配置端口: 14321 ,透过ubuntu的4321端口 , 访问容器内监听54321端口的kingbase服务
-----
使用datagrip连接kingbase
host: localhost
端口: 14321 (即: vagrantfile内配置的host端口)
user: kingbase (docker启动参数)
password: 123456 (docker启动参数)
database: kingbase
url: jdbc:postgresql://localhost:14321/kingbase