DM数据库学习之路(十三)DM8 Docker云环境部署(含Docker安装及宿主机登录)

本文详细描述了如何在CentOS7.9环境中离线安装Docker,以及如何基于Docker部署DM8单机版,包括Docker服务配置、镜像操作、容器启动与管理,后续还将涉及docker环境下的备份恢复、DM8DataWatch和RWC等高级功能。
摘要由CSDN通过智能技术生成
  1. DM8 Docker云环境部署

    1. 前言

今天收到达梦培训中心,DM8-DCA认证考试结果通知,看到领取证书说明,需要一个月内提交一份精品博文一篇,看了一下达梦在线服务平台中的博客,感觉再提交一些重复的就没什么意义(之前做过大量的DataWatch、RWC、主备集群+异步库、DPC集群、DSC共享存储集群等搭建和测试),想来想去准备找一个亮点,博客上没有的,基于docker安装dm8单机版。初次先学习docker如何安装,如何在docker上安装DM8,docker环境连接DM8,docker环境如何启停数据库。后面如果有时间,我会再写docker的dm8 DataWatch, docker的dm8 RWC, docker的dm8 DSC, k8s环境下的dm8等。

    1. 环境说明

类别

版本

介质

操作系统

Centos7.9

CentOS-7.9-x86_64-DVD.iso

Docker

24.0.6

docker-24.0.6.tgz

Dm8 Docker

DM8开发版

dm8_20230808_rev197096_x86_rh6_64_single.tar

    1. Docker安装(离线安装)

Docker可以离线安装,也可以在线安装,如果要在线安装需要准备一台可以上外网的机器,直接从镜像仓库拉取镜像安装。如果要离线安装就需要提前下载好docker离线安装包,并上传到服务器上。这里采用离线安装的方式进行,下次的博客我会采用在线安装方式,尽请留意。

Docker有rpm版本和源码版本,这里采用源码版本进行安装。

      1. 上传并解压docker

# docker-24.0.6.tgz上传至/opt目录

# tar -zxvf docker-24.0.6.tgz

      1. 文件移到/usr/bin

cp -rp /opt/docker/* /usr/bin/

      1. 注册docker为系统服务

vi /etc/systemd/system/docker.service

[Unit]

Description=Docker Application Container Engine

Documentation=https://docs.docker.com

After=network-online.target firewalld.service

Wants=network-online.target

 

[Service]

Type=notify

# the default is not to use systemd for cgroups because the delegate issues still

# exists and systemd currently does not support the cgroup feature set required

# for containers run by docker

ExecStart=/usr/bin/dockerd

ExecReload=/bin/kill -s HUP $MAINPID

# Having non-zero Limit*s causes performance problems due to accounting overhead

# in the kernel. We recommend using cgroups to do container-local accounting.

LimitNOFILE=infinity

LimitNPROC=infinity

LimitCORE=infinity

# Uncomment TasksMax if your systemd version supports it.

# Only systemd 226 and above support this version.

#TasksMax=infinity

TimeoutStartSec=0

# set delegate yes so that systemd does not reset the cgroups of docker containers

Delegate=yes

# kill only the docker process, not all processes in the cgroup

KillMode=process

# restart the docker process if it exits prematurely

Restart=on-failure

StartLimitBurst=3

StartLimitInterval=60s

[Install]

WantedBy=multi-user.target

      1. 添加权限

添加权限后启动

chmod +x /etc/systemd/system/docker.service

      1. 重新加载配置文件

systemctl daemon-reload

      1. Docker启动

systemctl start docker

systemctl enable docker

      1. 查看docker状态

systemctl status docker

      1. 查看docker版本

# docker version

Client:

 Version:           24.0.6

 API version:       1.43

 Go version:        go1.20.7

 Git commit:        ed223bc

 Built:             Mon Sep  4 12:30:51 2023

 OS/Arch:           linux/amd64

 Context:           default

Server: Docker Engine - Community

 Engine:

  Version:          24.0.6

  API version:      1.43 (minimum version 1.12)

  Go version:       go1.20.7

  Git commit:       1a79695

  Built:            Mon Sep  4 12:32:17 2023

  OS/Arch:          linux/amd64

  Experimental:     false

 containerd:

  Version:          v1.7.3

  GitCommit:        7880925980b188f4c97b462f709d0db8e8962aff

 runc:

  Version:          1.1.9

  GitCommit:        v1.1.9-0-gccaecfc

 docker-init:

  Version:          0.19.0

  GitCommit:        de40ad0

到此docker安装完成。

      1. Docker简单查询

[root@dm8docker ~]# docker images

REPOSITORY   TAG       IMAGE ID   CREATED   SIZE

[root@dm8docker ~]# docker ps

CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

docker images:本地镜像

docker ps:活动的docker(正在运行的)

这里没有任何东西,因为只安装了docker软件,应用或者数据库都还没有开始部署。

    1. DM8云版本安装
      1. 下载DM8 Docker镜像

请到达梦官网下载产品下载-达梦数据下载DM8 Docker镜像安装包

这个版本是X86_64位 for Linux版本。麒麟V10会报错。

      1. 导入安装包

拷贝安装包到 /opt 目录下,执行以下命令导入安装包:

docker load -i /opt/dm8_20230808_rev197096_x86_rh6_64_single.tar

结果显示如下:

      1. 查看DM8镜像

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

docker images

TAG:云版本DM8版本号

IMAGE ID:导入镜像ID号

      1. 创建容器

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

--简单:

docker run -d -p 25236:5236  --name DAMENG  -e INSTANCE_NAME=DMSERVER -e LD_LIBRARY_PATH=/opt/dmdbms/bin  -v /data:/dm8/dmdbms/data   ab98e2f4a568

参数说明:

-p 25236:5236                    #将docker内DM8的5236端口映射到外面25236

--name DAMENG                    #数据库名

INSTANCE_NAME=DMSERVER           #数据库实例

LD_LIBRARY_PATH=/opt/dmdbms/bin  #docker内DM8安装路径

ab98e2f4a568                     #镜像ID

/data:/dm8/dmdbms/data           #将镜像内/dm8/dmdbms/data映射到外面/data目录

--复杂

docker run -d -p 25236:5236 --restart=always --name DAMENG --privileged=true -e PAGE_SIZE=16 -e LD_LIBRARY_PATH=/opt/dmdbms/bin -e EXTENT_SIZE=32 -e BLANK_PAD_MODE=1 -e LOG_SIZE=1024 -e UNICODE_FLAG=1 -e LENGTH_IN_CHAR=1 -e INSTANCE_NAME=DMSERVER -v /data:/opt/dmdbms/data ab98e2f4a568

或者

docker run -d -p 25236:5236 --restart=always --name DAMENG --privileged=true -e PAGE_SIZE=16 -e LD_LIBRARY_PATH=/opt/dmdbms/bin -e EXTENT_SIZE=32 -e BLANK_PAD_MODE=1 -e LOG_SIZE=1024 -e UNICODE_FLAG=1 -e LENGTH_IN_CHAR=1 -e INSTANCE_NAME=DMSERVER -v /data:/opt/dmdbms/data dm8_single:dm8_20230808_rev197096_x86_rh6_64

说明:

ab98e2f4a568:查看docker images获得镜像ID号

dm8_single:dm8_20230808_rev197096_x86_rh6_64:查看docker images获得镜像名称

      1. 删除容器

如果安装失败,手工删除再重建

docker remove -f 56d76d12f322

      1. 查看镜像启动情况

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

      1. 查看镜像DM8进程情况

      1. 查看持久化目录

ls -al /data/DAMENG/

      1. 查看日志情况

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

docker logs -f  DAMENG

docker logs -f 56d76d12f322

结果显示如下:

    1. DM8启/停数据库
      1. docker停止数据库

# docker stop DAMENG

# docker ps

CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

      1. docker启动数据库

docker start  DAMENG

重启命令如下:

docker restart  DAMENG

      1. 进入容器停数据库

[root@dm8docker ~]# docker exec -it 56d76d12f322 bash

root@56d76d12f322:/# cd /opt/dmdbms/bin

root@56d76d12f322:/opt/dmdbms/bin#

这个版本把注册服务包拿掉了,不能注册,不能重启,只能在docker层面启停。

    1. 进入容器文件系统

DM8 Docker镜像中数据库默认用户名/密码为 SYSDBA/SYSDBA001

如果使用 docker 容器里面的 disql,进入容器后,先执行 source /etc/profile 防止中文乱码。

[root@dm8docker ~]# docker exec -it 56d76d12f322 bash

    1. 容器登录DM8数据库

root@56d76d12f322:/# source /etc/profile

root@56d76d12f322:/# cd /opt/dmdbms/bin

root@56d76d12f322:/opt/dmdbms/bin# ./disql SYSDBA/SYSDBA001

Server[LOCALHOST:5236]:mode is normal, state is open

login used time : 4.950(ms)

disql V8

SQL> select status$ from v$instance;

LINEID     STATUS$

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

1          OPEN

used time: 2.271(ms). Execute id is 600.

SQL> select name from v$database;

LINEID     NAME 

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

1          DAMENG

used time: 1.119(ms). Execute id is 601.

SQL> select instance_name from v$instance;

LINEID     INSTANCE_NAME

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

1          DMSERVER

    1. 安装宿主机DM8客户端

# mount -o loop /soft/linux_x86_64/dm8_20240116_x86_rh7_64.iso  /mnt

# cd /mnt

# ./DMInstall.bin -i

    1. 宿主机登录容器DM8

[root@dm8docker ~]# cd /dm8/bin

[root@dm8docker bin]# ./disql SYSDBA/SYSDBA001@127.0.0.1:25236

    1. 宿主机使用管理工具

[root@dm8docker /]# cd /dm8/tool/

[root@dm8docker tool]# export DISPLAY=84.0.191.1:0.0

[root@dm8docker tool]# ./manager

今天就写到这里,后面会在docker环境做备份恢复测试、dm8 DataWatch dm8 RWC docker的dm8 DSC,k8s环境下的dm8等。

<think>好的,我现在需要帮助用户找到如何使用Docker达梦数据库DM8的教程。根据用户提供的引用内容,我需要先整理这些信息,然后按照系统级指令的要求来生成回答和相关问题。 首先,用户引用了四个来源,其中提到了Docker镜像的导入、运行命令、配置参数以及验证步骤。我需要确保回答结构清晰,分步骤说明,同时正确使用LaTeX格式和引用标识。 接下来,我需要检查每个步骤是否符合用户提供的引用内容。例如,引用[1]提到了导入镜像的命令,引用[3]提供了docker run的具体参数,引用[4]则涉及验证方法。需要将这些信息整合成一个连贯的教程。 另外,要注意系统指令中的要求,如行内数学表达式用$...$,独立公式用$$...$$,但在这个问题中可能数学公式不多,但需要确保其他格式正确,比如代码块用反引号包裹,引用标识自然添加在段落末尾。 然后,生成相关问题需要考虑用户可能感兴趣的方面,比如安装常见问题、数据持久化、配置文件修改等,确保问题与主题相关且具有实用性。 最后,确保回答使用中文,并且所有引用正确标注,例如在步骤末尾添加[^1]、[^3]等。同时避免使用Markdown格式,保持自然的口语化叙述,但按照用户的要求结构清晰,分步骤说明。</think>### 如何使用Docker达梦数据库DM8)教程 #### 一、准备工作 1. **获取Docker镜像** 从达梦官网或指定渠道下载DM8Docker镜像文件(如`dm8_xxxx.tar`),通过XFTP等工具上传至服务器[^1]。 2. **导入镜像到Docker** 在服务器执行以下命令,将镜像加载到本地Docker环境: ```bash docker load -i dm8_20240715_x86_rh6_rq_single.tar # 替换为实际文件名[^1] ``` --- #### 二、启动容器 运行以下命令部DM8实例(参数需根据实际情况调整): ```bash docker run -d \ -p 5236:5236 \ # 映射数据库端口 --name dm8_01 \ # 容器名称 --restart=always \ # 自动重启 --privileged=true \ # 授予权限 -e PAGE_SIZE=16 \ # 页大小配置[^3] -e INSTANCE_NAME=dm8_01 \ # 实例名 -v /data/dm8_01:/opt/dmdbms/data \ # 数据持久化目录[^3] dm8:dm8_20241230_rev255012_x86_rh6_64 # 镜像标签 ``` --- #### 三、验证部 1. **检查容器状态** ```bash docker ps -a | grep dm8_01 ``` 2. **连接数据库验证** 进入容器并使用`disql`工具测试: ```bash docker exec -it dm8_01 /opt/dmdbms/bin/disql SYSDBA/SYSDBA001@localhost:5236 ``` 出现SQL交互界面即表示成功[^4]。 --- #### 四、关键配置说明 | 参数 | 作用 | 示例值 | |---------------------|-----------------------------|-------------------------| | `-v /host_path:/opt/dmdbms/data` | 数据持久化存储路径 | `/data/dm8_01` | | `-e PAGE_SIZE=16` | 设置数据库页大小(单位KB) | 16/32/64 | | `-e CASE_SENSITIVE` | 控制大小写敏感(0关闭,1开启) | 默认为1 | ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值