


官方文档
https://eco.dameng.com/document/dm/zh-cn/start/dm-install-docker.html
下载与加载镜像
下载镜像
wget -O dm8_docker.tar -c https://download.dameng.com/eco/dm8/dm8_20220822_rev166351_x86_rh6_64_ctm.tar
加载镜像
docker load -i dm8_docker.tar
下载与加载后可以查看镜像
启动容器
docker run -d -p 5236:5236 \
--restart=always \
--name dm8_01 \
--privileged=true \
-e CASE_SENSITIVE=0 \
-e UNICODE_FLAG=1 \
-e LENGTH_IN_CHAR=1 \
-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
部分参数解释:
CASE_SENSITIVE=0 设置大小写不敏感
LENGTH_IN_CHAR=1 VARCHAR 类型对象的长度以字符为单位
UNICODE_FLAG 字符集 (0),可选值: 0[GB18030], 1[UTF-8], 2[EUC-KR]
查看容器是否启动起来了
查看dm对应容器的日志情况
docker logs 容器名称或者id
当看到:
Init DM success!
Start DmAPService…
一般就会成功了,但是也不一定因为数据库不一定会初始化成功,要看到SYSTEM IS READY才是成功了,日志可以过一会在看内容就会变化,看是否能看到SYSTEM IS READY.。有可能遇到问题,比如什么内存不足,硬盘不足等问题,数据库要求的服务器资源还是有点多
进入容器,登录数据库
进入容器
docker exec -it dm8_01 bash
切换到/opt/dmdbms/bin目录
cd /opt/dmdbms/bin
然后执行登录命令
./disql SYSDBA/SYSDBA001
一次成功效果如下:
这个版本的Docker镜像中数据库默认用户名/密码为 SYSDBA/SYSDBA001。如果使用命令登录没有成功,提示用户名密码失败,就自己自己输入用户密码就行了。比如我这里故意把命令登录的用户名密码输入错误,他就会让你重新输入账号密码:
测试远程连接
他这个管理员账户居然可以直接远程连接这个是没有想到的,还以为要设置一堆东西也,方便倒是很方便,不过感觉好像不是很安全诶。
dm数据库容器里边的目录结构,比如日志文件,数据库文件等
可以先切换到容器里边的dmdbms目录里边看看
cd /opt/dmdbms/
可以看到里边有bin,conf,data,log这些比较重要的文件夹。比如log里边就是日志,data里边存放的就是数据
进入log文件夹里边查看日志
可以看到里边还是有很多日志的,这里我们可以查看一下dm_DMSERVER_202302.log这个日志,应该就是dm数据库的运行日志
里边内容比较多,这里随便截一点,像这种SYSTEM IS READY. 启动正常的时候会看到。
进入data文件夹里边可以看到数据库的初始化脚本等
cd /opt/dmdbms/data
常用错误解决
查看日志出现 Database first startup failed, reinitialize database please!
日志一直提示:DM Database is not OK, please wait…,并且后面出现Database first startup failed, reinitialize database please!
首先要确保你安装的服务器存储要足够,然后还有就是挂载目录的问题要注意,比如你前面因为内存不够等原因出现过启动失败,然后调整好了在删除容器后重新启动容器遇到这个错,就有可能是前面挂载一次了,但是没有初始化成功,这个时候就可以把前面挂载的目录删除掉在启动。
比如我们挂载目录是这个:/data/dm8_01。那么我们进入data目录去把dm8_01干掉
干掉后重启就可以了
登录遇到错误?Create SOCKET connection failure
这种情况就是数据库没有成功启动,要么就是服务没有启动,要么就是数据库没有初始化成功。没有启动成功的情况可以参考是不是遇到上面的问题,具体问题查看日志分析。
使用docker-compose 安装
创建docker-compose.yml,写入内容
version: '3'
services:
dm8:
image: dm8_single:v8.1.2.128_ent_x86_64_ctm_pack4
container_name: dm8
environment:
# 时区上海
TZ: Asia/Shanghai
LD_LIBRARY_PATH: "/opt/dmdbms/bin"
# SYSDBA_PWD: "SYSDBA001" # 默认密码就是SYSDBA001 这里修改默认密码不一定会起效,需要进数据库改
ports:
- "5236:5236"
volumes:
- ./data/dm8/data:/opt/dmdbms/data
# restart: always
networks:
- my_net_dm
deploy:
resources:
limits:
memory: 1000M
reservations:
# cpus: 0.8
memory: 1000M
networks:
my_net_dm:
driver: bridge
ipam:
config:
- subnet: 172.30.0.0/16
启动与停止
docker-compose up -d
docker-compose down
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)