在Docker环境中快速安装使用达梦DM数据库【测试成功】

艺帆风顺 发布于 2025-04-03 20 次阅读


关于在docker中安装达梦数据库,达梦官方网站其实是有提供安装使用方法的,但可能还是有朋友不会,这里将在原文基础上简单扩充下。

注意:docker容器中,数据库安装后没有创建服务的脚本,只有bin、bin2、conf、data、log五个目录

安装前准备

软硬件版本
终端X86-64 架构
Docker2022 年 8 月版

下载 Docker 安装包

请在达梦数据库官网下载 Docker 安装包。

导入安装包

 拷贝安装包到自定义目录下,我这里创建了目录/docker_soft,执行以下命令导入安装包:

wget https://download.dameng.com/eco/dm8/dm8_20220822_rev166351_x86_rh6_64_ctm.tar
docker load -i dm8_20220822_rev166351_x86_rh6_64_ctm.tar

结果显示如下:

导入完成后,可以使用 docker images 查看导入的镜像。结果显示如下:

启动容器

镜像导入后,使用 docker run 启动容器,启动命令如下:

rm -rf /opt/dmdbms

rm -rf /dm8_docker

如果之前创建过,则需要先删除对应挂载目录,否则启动报错。

docker run -d -p 5236:5236 --restart=always --name dm8_01 --privileged=true -e PAGE_SIZE=16 -e LD_LIBRARY_PATH=/opt/dmdbms/bin -e INSTANCE_NAME=dm8_01 -v /data/dm8_01:/opt/dmdbms/data dm8_single:v8.1.2.128_ent_x86_64_ctm_pack4

附:-ti 是交互模式运行 -d 是后台运行 -p 是端口映射 --restart=always Docker重启时,自动重启容器 外部宿主机端口:内部docker端口 --name 设置的别名 --privileged=true 里边docker有root权限 -e 这个一般设置环境变量使用 这可以设置达梦的初始化参数 LD_LBRARY_PATH环境变量 实例名啥的 -v 是目录的映射 宿主机目录:docker里边的目录 外边宿主机目录先创建好 最后指定下要加上运行的镜像 镜像名:标签名

 注意:如果想再新建一个数据库,需再次使用以上命令创建,注意修改端口号(-p)和别名(--name)

容器启动完成后,使用 docker ps 查看镜像的启动情况,结果显示如下

启动完成后,可通过日志检查启动情况,命令如下:

docker logs -f 58deb28d1209

其中58deb28d1209指的是docker ps查看到的容器的ID(CONTAINER_ID)

结果显示如下:

进入到容器中执行命令,登录数据库

docker exec -it cab166f00a4f /bin/bash 

其中cab166f00a4f指的是docker ps查看到的容器的ID(CONTAINER_ID

    root@cab166f00a4f:/# ps -ef|grep dmserverroot 48 1 14 14:53 pts/0 00:00:05 ./dmserver /opt/dmdbms/data/DAMENG/dm.ini -noconsoleroot 167 156 0 14:53 pts/1 00:00:00 grep --color=auto dmserverroot@cab166f00a4f:/# cd /opt/dmdbms/binroot@cab166f00a4f:/opt/dmdbms/bin# ./disql SYSDBA/SYSDBA001

    cd /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

        版权声明:本文内容来自CSDN:保定公民,遵循CC 4.0 BY-SA版权协议上原文接及本声明。本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行可。原文链接:https://blog.csdn.net/qq_35273918/article/details/131910781如有涉及到侵权,请联系,将立即予以删除处理。在此特别鸣谢原作者的创作。此篇文章的所有版权归原作者所有,与本公众号无关,商业转载建议请联系原作者,非商业转载请注明出处。