关于在docker中安装达梦数据库,达梦官方网站其实是有提供安装使用方法的,但可能还是有朋友不会,这里将在原文基础上简单扩充下。
注意:docker容器中,数据库安装后没有创建服务的脚本,只有bin、bin2、conf、data、log五个目录
安装前准备
软硬件 | 版本 |
---|---|
终端 | X86-64 架构 |
Docker | 2022 年 8 月版 |
下载 Docker 安装包
请在达梦数据库官网下载 Docker 安装包。
导入安装包
拷贝安装包到自定义目录下,我这里创建了目录/docker_soft,执行以下命令导入安装包:
docker load -i dm8_20220822_rev166351_x86_rh6_64_ctm.tar
结果显示如下:
导入完成后,可以使用 docker images
查看导入的镜像。结果显示如下:
启动容器
镜像导入后,使用 docker run
启动容器,启动命令如下:
[root@dameng docker_soft]# docker run -tid -p 15236:15236 --restart=always --name dm8_02 --privileged=true -e PAGE_SIZE=16 -e LD_LIBRARY_PATH=/opt/dmdbms/bin -e INSTANCE_NAME=dm8_01 -v /dm8_docker/data:/opt/dmdbms/data dm8_single:v8.1.2.128_ent_x86_64_ctm_pack4
cab166f00a4f623254fe873baaf5f8841cd91fba685573384fb1d5285e8884cb
附:-ti 是交互模式运行 -d 是后台运行 -p 是端口映射 --restart=always Docker重启时,自动重启容器 外部宿主机端口:内部docker端口 --name 设置的别名 --privileged=true 里边docker有root权限 -e 这个一般设置环境变量使用 这可以设置达梦的初始化参数 LD_LBRARY_PATH环境变量 实例名啥的 -v 是目录的映射 宿主机目录:docker里边的目录 外边宿主机目录先创建好 最后指定下要加上运行的镜像 镜像名:标签名
注意:如果想再新建一个数据库,需再次使用以上命令创建,注意修改端口号(-p)和别名(--name)
容器启动完成后,使用 docker ps
查看镜像的启动情况,结果显示如下:
[root@dameng docker_soft]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cab166f00a4f dm8_single:v8.1.2.128_ent_x86_64_ctm_pack4 "/bin/bash /opt/star…" 10 seconds ago Up 10 seconds 5236/tcp, 0.0.0.0:15236->15236/tcp, :::15236->15236/tcp dm8_02
启动完成后,可通过日志检查启动情况,命令如下:
docker logs -f dm8_01
或
docker logs -f 58deb28d1209
其中58deb28d1209指的是docker ps查看到的容器的ID(CONTAINER_ID)
结果显示如下:
进入到容器中执行命令,登录数据库
docker exec -it cab166f00a4f /bin/bash
其中cab166f00a4f指的是docker ps查看到的容器的ID(CONTAINER_ID)
详情:
[root@dameng docker_soft]# docker exec -it cab166f00a4f /bin/bash
root@cab166f00a4f:/# ps -ef|grep dmserver
root 48 1 14 14:53 pts/0 00:00:05 ./dmserver /opt/dmdbms/data/DAMENG/dm.ini -noconsole
root 167 156 0 14:53 pts/1 00:00:00 grep --color=auto dmserver
root@cab166f00a4f:/# cd /opt/dmdbms/bin
root@cab166f00a4f:/opt/dmdbms/bin# ./disql SYSDBA/SYSDBA001
启动/停止数据库
停止数据库命令如下:
docker stop dm8_01
启动数据库命令如下:
docker start dm8_01
重启命令如下:
docker restart dm8_01
注意
1.如果使用 docker 容器里面的 disql,进入容器后,先执行 source /etc/profile 防止中文乱码。
2.新版本 Docker 镜像中数据库默认用户名/密码为 SYSDBA/SYSDBA001。
停止运行docker
#停止docker服务
[root@dameng docker_soft]# systemctl stop docker.socket
[root@dameng docker_soft]# systemctl stop docker
#禁止docker服务开机自启动
[root@dameng docker_soft]# systemctl disable docker
#查看docker服务是否开机自启动
[root@dameng docker_soft]# systemctl is-enabled docker
[root@dameng docker_soft]# systemctl is-enabled docker.socket