目录
官方文档
1、下载镜像
命令下载
wget -O dm8_docker.tar -c https://download.dameng.com/eco/dm8/dm8_20220822_rev166351_x86_rh6_64_ctm.tar
直接下载(我用这种)
下载完成
2、导入镜像
导入完成后,可以使用 docker images
查看导入的镜像。
3、启动容器
运行docker命令:
/Users/mac/Documents/tool/dm/data/dm8_01 这个地址要换成你本地的映射地址,下边会说
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 /Users/mac/Documents/tool/dm/data/dm8_01:/opt/dmdbms/data \
dm8_single:v8.1.2.128_ent_x86_64_ctm_pack4
具体含义(AI解释更加清晰😜):
docker run: 运行一个新的Docker容器。
-d: 在后台运行容器。
-p 5236:5236: 将主机的5236端口映射到容器的5236端口,允许通过主机访问容器中的服务。
--restart=always: 容器在退出时自动重启。
--name dm8_01: 指定容器的名称为"dm8_01"。
--privileged=true: 在容器内部允许使用特权模式,即对容器内部的所有系统操作都具有完全权限。
-e CASE_SENSITIVE=0: 设置环境变量CASE_SENSITIVE的值为0。
-e UNICODE_FLAG=1: 设置环境变量UNICODE_FLAG的值为1。
-e LENGTH_IN_CHAR=1: 设置环境变量LENGTH_IN_CHAR的值为1。
-e PAGE_SIZE=16: 设置环境变量PAGE_SIZE的值为16。
-e LD_LIBRARY_PATH=/opt/dmdbms/bin: 设置环境变量LD_LIBRARY_PATH的值为/opt/dmdbms/bin,用于指定共享库的搜索路径。
-e INSTANCE_NAME=dm8_01: 设置环境变量INSTANCE_NAME的值为"dm8_01"。
-v /Users/mac/Documents/tool/dm/data/dm8_01:/opt/dmdbms/data: 将主机的/Users/mac/Documents/tool/dm/data/dm8_01目录挂载到容器的/opt/dmdbms/data目录,用于在主机和容器之间共享数据。
dm8_single:v8.1.2.128_ent_x86_64_ctm_pack4: 启动容器时使用的镜像名称。
过程中可能会遇到报错:
Error response from daemon: Conflict. The container name "/dm8_01" is already in use by container "0112778b91cf7f29ea11029986449f20f3e9920e2cec100aadbed64c480e415b". You have to remove (or rename) that container to be able to reuse that name. See 'docker run --help'
这个错误是说在你的Docker环境中,已经存在一个名称为"dm8_01"的容器,并且处于运行状态。
停止并删除现有容器:
docker stop dm8_01
docker rm dm8_01
Error response from daemon: Mounts denied: The path /data/dm8_01 is not shared from the host and is not known to Docker. You can configure shared paths from Docker -> Preferences... -> Resources -> File Sharing. See https://docs.docker.com/desktop/mac for more info.
这个错误是应该是因为本地映射目录配置有问题,Docker无法将主机的/data/dm8_01(这个是最早我测试的目录)目录挂载到容器的/opt/dmdbms/data目录,因为该目录没有被共享给Docker。
解决需要在你本地配置一个目录来跟dm的/opt/dmdbms/data做映射关联。
容器启动完成后,使用 docker ps
查看镜像的启动情况
启动完成后,可通过日志检查启动情况,命令如下:
docker logs -f dm8_01 或 docker logs -f 58deb28d1209
4、测试连接
镜像默认用户名/密码为: SYSDBA/SYSDBA001
5、常用命令
这个结合docker desktop启停应该很方便,也附上几个命令
进入容器
docker exec -it dm8_01 bash
切换到/opt/dmdbms/bin目录
cd /opt/dmdbms/bin
执行登录命令
./disql SYSDBA/SYSDBA001
停止数据库命令如下:
docker stop dm8_01
启动数据库命令如下:
docker start dm8_01
重启命令如下:
docker restart dm8_01