注册
docker安装达梦8数据库
培训园地/ 文章详情 /

docker安装达梦8数据库

蜗牛的梦想 2023/05/19 2908 4 1

一、 安装docker

1. 环境要求

版本要求:docker19.0以上,官网要求22年8月以后版本。
服务器版本:X86架构(达梦本身支持很多种架构,这里仅表示本地环境是x86)、

2. 下载docker安装包(根据需要大家替换docker地址)

wget {docker官网}docker-20.10.24.tgz -P /usr/local cd /usr/local tar -zvxf docker-20.10.24.tgz && mv docker-20.10.24/* /usr/bin #启动docker,当然也可以配置一个docker.service放在/usr/lib/systemd/system/ dockerd & # 如果需要配置额外的docker参数比如镜像加速等等,可以修改/etc/docker/daemon.json,systemctl daemon-reload 即可

二、下载达梦8docker镜像

QQ截图20230518210657.png

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

QQ截图20230518215319.png

QQ截图20230518221337.png

[root@dev-notwo-201-95 ~]# docker images|grep dm
dm8_single          v8.1.2.128_ent_x86_64_ctm_pack4   ccb727ce9dce   8 months ago    432MB

QQ截图20230518215350.png

三、启动数据库

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 --mount source=dm8-vol,dst=/opt/dmdbms/data \ dm8_single:v8.1.2.128_ent_x86_64_ctm_pack4 #-d 后台运行, #-p 端口映射 宿主机端口:容器端口, #--restart =always 开机启动 #--name容器名称。 #--privileged 特权模式,可以允许容器拥有一些主机的权限访问设备、文件, 比如绕过selinux,因此该方法仅适用于测试开发环境请谨慎在生产环境使用 #-e 后面就是dm数据库的一些参数。 包括页大小、簇大小,这里只设置了page_size 页大小,单位是KB, #INSTANCE_NAME实例名称, #--mount 就是挂载volume,路径一般是/var/lib/docker/volumes/{source名称}, #dst就是容器里的目录。 最后就是镜像了。 #查看日志 docker logs -f dm8_01

QQ截图20230518221337.png

#进入容器,登录数据库(最新版的默认用户名密码:SYSDBA SYSDBA001) docker exec -it dm8_01 bash root@3a1e02fbfa84:/opt/dmdbms/bin# ./disql SYSDBA/SYSDBA001:5236 Server[LOCALHOST:5236]:mode is normal, state is open login used time : 8.657(ms) disql V8 SQL> exit #退出当前容器CTRL + D # 数据目录在这里 [root@dev-notwo-201-95 ~]# ll /var/lib/docker/volumes/dm8-vol/_data/DAMENG/ total 864348 drwxr-xr-x 2 root root 6 May 18 22:12 bak drwxr-xr-x 2 root root 78 May 18 22:13 ctl_bak -rw-r--r-- 1 root root 268435456 May 18 22:19 DAMENG01.log -rw-r--r-- 1 root root 268435456 May 18 22:12 DAMENG02.log -rw-r--r-- 1 root root 5632 May 18 22:13 dm.ctl -rw-r--r-- 1 root root 59755 May 18 22:12 dm.ini -rw-r--r-- 1 root root 973 May 18 22:12 dminit20230518221226.log -rw-r--r-- 1 root root 633 May 18 22:12 dm_service.prikey drwxr-xr-x 2 root root 6 May 18 22:12 HMAIN -rw-r--r-- 1 root root 134217728 May 18 22:12 MAIN.DBF -rw-r--r-- 1 root root 12 May 18 22:12 rep_conflict.log -rw-r--r-- 1 root root 134217728 May 18 22:15 ROLL.DBF -rw-r--r-- 1 root root 481 May 18 22:12 sqllog.ini -rw-r--r-- 1 root root 52428800 May 18 22:18 SYSTEM.DBF -rw-r--r-- 1 root root 27262976 May 18 22:12 TEMP.DBF drwxr-xr-x 2 root root 6 May 18 22:12 trace #数据库重启、停止等可以通过下面命令实现 docker start|stop|restart dm8_01

四、FAQ

  • 启动容器报错:
[root@dev-notwo-201-95 ~]# 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 --mount source=dm8-vol,dst=/opt/dmdbms/data dm8_single:v8.1.2.128_ent_x86_64_ctm_pack4
0378108e4eb4b5172d43d26591aae70837b7dca5d44b6288cb75bac54afcc5ee
docker: Error response from daemon: driver failed programming external connectivity on endpoint dm8_01 (a9dfcc1b993393aef533e6af9dac32c74e9d30db66aad43bf9f15ba90a0449a7):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 5236 -j DNAT --to-destination 172.17.0.3:5236 ! -i docker0: iptables: No chain/target/match by that name.

解决办法:由于容器的端口映射是基于docker写入iptables实现,因此如果当前docker网络有变化根iptables上的规则无法对应就会导致iptable规则无法与正确网络绑定。systemctl restart docker 即可解决。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服