(SERIES6)DM8 Docker安装部署

1 安装Docker

1.1 设置系统语言

  因为操作过程中不可避免地出现中文内容,故首先把OS语言设置一下,以防在数据库安装和Docker Repository中展示docker-ce的可用源列表时出现中文乱码问题;
  进行下述语言和字符编码设置之前,确保你已经安装了中文字体;下述命令安装的中文语言包在绝大多数Linux发行版上都能很好地支持中文显示:

sudo yum install wqy-zenhei-fonts
# 或
sudo yum install wqy-microhei-fonts

  使用vi / vim或nano等编辑文件,往.bashrc中添加如下内容,设置系统字符编码格式为UTF-8

cd ~
vim .bashrc

# 在.bashrc文件的末尾添加如下内容:
# Set language environment
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8

  对新增的参数LANGLC_ALL解释如下:

  • LANG:设置主要的语言和地区
  • LC_ALL:覆盖所有其他LC_*的变量,强制使用指定的语言和地区

  接下来,确保.bash_profile文件中包含.bashrc,这样在登录时也会应用这些设置。确保在.bash_profile中下述代码存在,若不存在则须自行添加:

# Source .bashrc if it exists
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

  完成上述两步骤后,使用source命令持久化上述更改:

source ~/.bashrc

  最后,验证上述更改是否生效:

echo $LANG
echo $LC_ALL

  这会打印语言设置。若输出显示为 zh_CN.UTF-8,则说明你已成功设置系统语言。

1.2 前置依赖包准备

  不指定具体版本情况下更新系统包并不推荐,因为可能会导致切换到不稳定版本导致莫名其妙的依赖问题。如果仍想要确保安装的包和依赖是最新的,运行以下命令:

sudo yum update -y

  【Docker本体】的依赖项包括yum-utils, device-mapper-persistent-data, lvm2等,其安装命令在下面给出:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  • yum-utils:简单来说,【yum-utils】是对【yum本体】的拓展;安装【yum-utils】能够提供提供额外的命令和安装选项,用于补充【yum本体】中找不到的目标包等。
  • device-mapper-persistent-data:【Device Mapper】是Linux内核中的一项功能,旨在为块设备提供映射层,使得可以通过它在物理设备之上创建虚拟设备 / 构建更复杂的存储配置,如RAID、LVM、磁盘加密等;而【device-mapper-persistent-data】是【Device Mapper】的一个用户空间库,提供了一些工具和持久化数据存储功能。在Docker中,当Docker使用【Device Mapper】存储驱动时,【device-mapper-persistent-data】用于管理Docker容器的存储层
  • lvm2:【lvm2】是【LVM】的用户空间工具集,它包括了一些命令行工具,用于管理逻辑卷、卷组和物理卷;在作为Docker依赖项的场景下,Docker的【devicemapper存储驱动】可以利用LVM来管理容器的存储。通过 LVM,Docker 可以创建快照和克隆镜像,从而提高容器的启动速度和存储管理的效率。
      总体上,【device-mapper-persistent-data】和【lvm2】都与Docker的分层存储密切相关。

  上述依赖添加完成后,我们这里选择通过给yum添加docker官方仓库的方式安装Docker本体。首先在yum中添加 Docker 的官方仓库:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

1.3 Docker本体安装

  Docker分为Desktop(桌面版)、CE(Community Edition)和EE(Enterprise Edition)版本

  • Docker CE:开源免费,面向开发者和小型团队,分为稳定版和测试版;其中稳定版每季度发布一次,提供较长的支持周期,适用于需要稳定环境的用户。
  • Docker EE:是一个订阅服务,提供企业级支持和认证容器、插件和管理工具,适合大规模生产环境。在安全性、可扩展性(支持高可用性和负载均衡等企业级功能)、官方技术支持和保证等方面具有优势。Docker EE同样分为稳定版和测试版,但每个版本的支持周期比Docker CE长。
  • Moby Project:Docker 的核心组件已经迁移至名为 Moby 的开源项目,Moby 旨在推动容器生态系统的开发。Docker CE 由 Moby 项目支持,而 Docker EE 则由 Docker 公司直接支持和维护。
  • Docker Desktop:Docker Desktop 是为 【macOS】 和【 Windows】 设计的 Docker 应用程序,提供图形化界面,简化了安装环境;同时包括了一个单节点的Kubernetes集群,可以一键启用,允许开发者在本地测试和开发Kubernetes配置。

  在主流Linux发行版中一般使用CE版本安装Docker CE(Community Edition)。
  给出安装Docker CE的命令如下::

sudo yum install -y docker-ce docker-ce-cli containerd.io

  上述命令中的【docker-ce】、【docker-ce-cli】和【containerd.io】分别是Docker CE的核心组件,对其解析如下:

  • docker-ce:docker-ce是Docker CE的主要包,包含了Docker Engine和Docker Daemon,负责管理和创建Docker容器;
  • docker-ce-cli:docker-ce-cli是Docker的命令行界面工具包,提供了Docker命令行工具,允许用户与Docker Daemon进行交互,是用户执行所有Docker相关命令的接口;
  • containerd.io:严格来说器名为是containerd,而containerd.io是其项目官网域名;它是一个轻量级的开源容器,与OS交互,在架构中扮演中间件的角色,提供必要的服务以支持上层的Docker Engine和其他可能的客户端;是Docker Engine的核心依赖之一,处理低级别的容器管理任务,一开始作为Docker Engine的一部分,后来被拆分出来作为一个独立的项目进行开发,以支持更广泛的容器生态系统需求,并为例如Kubernetes的其他工具或系统提供服务。

  Docker Enginecontainerd体现了一种分层关系。containerd专注于性能和可靠性,保证容器的有效和安全运行;而Docker Engine集中于用户体验和高级功能。

  安装完成后,启动Docker服务并配置其为开机自启动:

sudo systemctl start docker
sudo systemctl enable docker

  运行docker --version命令,验证Docker是否安装成功。命令及其返回结果如下:

[dmdba@VM-8-6-centos ~]$ docker --version
Docker version 26.1.4, build 5650f9b

  很多情况下,公共的Docker Hub访问会遇到网络问题导致镜像无法被pull下来。我们这里通过配置阿里云镜像加速器来解决这一问题:

sudo vim /etc/docker/daemon.json

  在daemon.json文件中添加如下内容(若没有该文件则自行创建):

{
  "registry-mirrors": ["https://<加速器地址>"]
}

  获取加速器地址需要一个属于自己的Aliyun账号;若已有账号,可直接前往镜像加速器页获取地址和不同系统的配置步骤。
  接下来尝试运行一个测试容器来验证Docker是否正常工作。输入命令和执行结果如下:

[dmdba@VM-8-6-centos ~]$ docker run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

  至此,完整的Docker安装过程已完成。

1.4 Docker Pull与Docker Push的超时、循环Retry问题解决

  问题出在网络上,至于原因…当然是由于一些众所周知的不便。

1.4.1 Docker Pull

  Docker Pull的解决方式相对简单,只要在Docker配置文件/etc/docker/daemon.json中配置镜像源即可,其关键在于找到真正可用的镜像源。在本文的过程中我尝试了Aliyun、Tencentyun的镜像配置,但仍旧无法解决问题,而我的ECS由后者提供;至于后来能够跑通是由于找到了另外可用的镜像源。对配置文件内容编辑的基本格式如下:

{
  "registry-mirrors": [
    "placeholder_1"
  ],
  "dns": [
    "placeholder_2"
  ]
}

  在上述两个占位符placeholder_1placeholder_2的位置分别可以配置镜像源地址DNS。前者是必需项,而后者可以在能够改善解析速度的情况下选择性编辑。

1.4.2 Docker Push

  在配置镜像源之后,没有解决我的Docker Push的超时问题。查阅资料得到以下几种可行的思路:

  • Github Actions充当Proxy,利用其给个人分配的VM Env(每次都会初始化,IP随机,但会预装Docker),首先将Image推送到Actions VM,再由Actions VM推送到Docker Hub Repository。✅
  • 多找几个备用的镜像地址(不过据反馈大部分知名的运作主体都发公告宣布不再提供支持或直接不可用)
  • 挂全局代理(具体略)
  • 自建Registry镜像站
  • Cloudflare加速
  • Nginx反代

  最后选用了第一种:将Github Actions服务器来充当此处的Proxy,作为Docker Push命令的跳板,把我们的Docker Image推送到Docker Hub的对应仓库。当然,这需要Proxy预安装了Docker;目前,默认情况下VM环境预装的操作系统为ubuntu-latest,其他的工具和软件包括常见的编程语言及其构建工具、用于版本控制的Git和SVN、容器和虚拟化产品、数据库和CI/CD功能等;而Docker就包含在其中。
  按照Github Actions官方文档,新建Github仓库docker_image_proxy,在Project Root下新建.github/workflow/docker-publish.yml,在yml中按照规定的格式编辑名为Push Docker Image的workflow,每个workflow都会指定名称触发方式jobs及其运行环境(Linux, Windows和MacOS可选,其中Linux主要是Ubuntu、Windows主要是Windows Server;每种环境的免费时间和存储容量额度Linux > Windows > MacOS)、以及更细化的steps(规定每一步需要执行的命令)。
  下面给出经过实践验证可行的YAML文件内容。注意需要:

  • 启用CentOS的SSH公钥验证(编辑/etc/ssh/sshd_config,确保有PubkeyAuthentication yes
  • 在CentOS上使用ssh-keygen命令生成密钥对,确保~/.ssh存在并授予700权限、确保~/.ssh目录下authorized_keysknown_hosts文件存在并分别授予600644权限
  • 同时在 Github Project(docker-image_proxy) > Settings > Secrets and variables > Actions设置好SSH_PRIVATE_KEY、DOCKER_USERNAME和DOCKER_PASSWORD三个变量
  • 打开 个人账户 > Settings > SSH and GPG keys(我们这里只会用到SSH部分),在其中加入公钥id_rsa.pub的内容。
name: Push Docker Image

on:
  workflow_dispatch: # 手动触发
jobs:
  image-push:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Set up SSH
        run: |
          mkdir -p ~/.ssh
          echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa
          chmod 600 ~/.ssh/id_rsa
          ssh-keyscan -H your_host_ip >> ~/.ssh/known_hosts
          
      - name: Debug SSH Key
        run: |
          ls -l ~/.ssh
          cat ~/.ssh/id_rsa

      - name: Copy Docker Image from CentOS
        run: |
          scp -i ~/.ssh/id_rsa username@your_host_ip:/home/username/DockerImages/myubuntu_duplicate.tar ./myubuntu_duplicate.tar

      - name: Load Docker Image
        run: docker load -i ./myubuntu_duplicate.tar

      - name: Login in to Docker Hub
        uses: docker/login-action@v2
        with:
          username: ${{secrets.DOCKER_USERNAME}}
          password: ${{secrets.DOCKER_PASSWORD}}

      - name: Tag Docker Image
        run: docker tag myubuntu:duplicate your_dockerhub_username/myubuntu:duplicate

      - name: Push Docker Image to Docker Hub
        run: |
          docker push your_dockerhub_username/myubuntu:duplicate

  值得注意的是,由于Github Actions工具每次启动都被分配了一个新的VM环境,所以IP并不确定,使得scp命令必须从Actions VM端发起。

1.5 一些关于可能会用到的其他工具的补充

  • yum-cron:自动化工具,定期自动更新yum缓存并自动安装更新包,减少动手干预;出现报错提示Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast时可用。

2 DM8的Docker安装

2.1 镜像导入与容器运行

  目前没有发现Docker Hub的公开镜像源的DM8镜像,不知道今后官方是否会考虑上线到Hub社区;暂时需要到官网获取安装包
  将Docker包下载到本机后,再用scp或ftp等将镜像包传输到CentOS主机的/opt目录下,执行以下命令导入安装包:

[dmdba@VM-8-6-centos opt]$ docker load -i dm8_20240715_x86_rh6_rq_single.tar
4a1518ebc26e: Loading layer [==================================================>]  75.19MB/75.19MB
b8a4238f8cd3: Loading layer [==================================================>]  16.14MB/16.14MB
78f411f0a3f4: Loading layer [==================================================>]  16.87MB/16.87MB
ee7e3338d636: Loading layer [==================================================>]  1.185MB/1.185MB
ad2c3a0ea0ae: Loading layer [==================================================>]  354.8kB/354.8kB
f238a8da5f88: Loading layer [==================================================>]  1.035GB/1.035GB
29bea1477fed: Loading layer [==================================================>]   5.12kB/5.12kB
d9d4efb7df38: Loading layer [==================================================>]  4.608kB/4.608kB
a4d32f2d669a: Loading layer [==================================================>]  3.072kB/3.072kB
407cb6f411e4: Loading layer [==================================================>]   2.56kB/2.56kB
27fc5e1a3138: Loading layer [==================================================>]   2.56kB/2.56kB
b17f6a378f4d: Loading layer [==================================================>]  4.096kB/4.096kB
80c94e424fcb: Loading layer [==================================================>]  4.096kB/4.096kB
Loaded image: dm8_single:dm8_20240715_rev232765_x86_rh6_64

  导入后可以使用docker images查看导入的镜像,可以得知该Tarball是以Repository : Tag形式打包的,所以才能在docker load到镜像后还原为该形态。我们导入的镜像位于列表的倒数第三位:

[dmdba@VM-8-6-centos opt]$ docker images
REPOSITORY                   TAG                                 IMAGE ID       CREATED        SIZE
simple-compose-project-app   latest                              5d689525c91d   3 days ago     58.2MB
<none>                       <none>                              2251f388ea36   3 days ago     58.2MB
ubuntu                       ping_installed                      d4ae28ee37c7   4 days ago     119MB
my-node-app                  v1                                  5cd19a4acbd3   4 days ago     912MB
nginx-test                   v1                                  9f1b4379c0ae   5 days ago     193MB
ubuntu-test                  v1                                  54a89a3d7fd5   5 days ago     78.1MB
myubuntu                     duplicate                           0338eb460f8b   9 days ago     78.1MB
nginx                        alpine                              0f0eda053dc5   11 days ago    43.3MB
nginx                        latest                              5ef79149e0ec   11 days ago    188MB
postgres                     alpine                              15a7c2c4d159   2 weeks ago    245MB
dm8_single                   dm8_20240715_rev232765_x86_rh6_64   0880e3256f92   5 weeks ago    1.14GB
ubuntu                       latest                              35a88802559d   2 months ago   78.1MB
hello-world                  latest                              feb5d9fea6a5   2 years ago    13.3kB

  接下来,使用docker run命令启动容器:

# 执行docker run命令前,记得将最后的Repository:Tag更换成之前导入的实际的镜像名和标签
[dmdba@VM-8-6-centos opt]$ docker run -d -p 30236:5236 --restart=always --name=dm8_test --privileged=true -e LD_LIBRARY_PATH=/opt/dmdbms/bin -e PAGE_SIZE=16 -e EXTENT_SIZE=32 -e LOG_SIZE=1024 -e UNICODE_FLAG=1 -e INSTANCE_NAME=dm8_test -v /opt/data:/opt/dmdbms/data dm8_single:dm8_20240715_rev232765_x86_rh6_64
09bd3a8a21a98af4ec13b56e7b77fdda52297c8b191e3879eeef80aaa5ed40c3
# 检验容器后台运行情况
[dmdba@VM-8-6-centos opt]$ docker ps
CONTAINER ID   IMAGE                                          COMMAND             CREATED         STATUS         PORTS                                         NAMES
09bd3a8a21a9   dm8_single:dm8_20240715_rev232765_x86_rh6_64   "/opt/startup.sh"   4 seconds ago   Up 3 seconds   0.0.0.0:30236->5236/tcp, :::30236->5236/tcp   dm8_test

  执行以下命令,会以JSON格式返回数据库初始化的所有详细参数:

docker inspect dm8_test

  由于内容过多,我们只在这里插入代码片选取其中Env项的内容:

"Env": [
                "INSTANCE_NAME=dm8_test",
                "LD_LIBRARY_PATH=/opt/dmdbms/bin",
                "PAGE_SIZE=16",
                "EXTENT_SIZE=32",
                "LOG_SIZE=1024",
                "UNICODE_FLAG=1",
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "SYSDBA_PWD=SYSDBA001",
                "CASE_SENSITIVE=1",
                "BUFFER=1000",
                "MODE=dmsingle",
                "CHG_PASSWD=dameng777",
                "DM_USER_PWD=dameng777",
                "BLANK_PAD_MODE=0",
                "LANG=en_US.UTF-8"
            ],

  这里会显示页大小PAGE_SIZE、簇大小EXTENT_SIZE、字符集UNICODE_FLAG和默认密码SYSDBA_PWD等数据项的配置。更多数据库初始化实例参数解释可参考达梦数据库安装目录下 doc 目录中《DM8_dminit 使用手册》。
  通过日志检查Container的启动情况:

[dmdba@VM-8-6-centos opt]$ docker logs dm8_test
Script start.
file dm.key not found, use default license!
License will expire on 2025-06-21
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL

 log file path: /opt/dmdbms/data/DAMENG/DAMENG01.log


 log file path: /opt/dmdbms/data/DAMENG/DAMENG02.log

write to dir [/opt/dmdbms/data/DAMENG].
create dm database success. 2024-08-26 09:53:48
initdb V8
db version: 0x7000c
Init DM success!
Start DmAPService...
Starting DmAPService:                                      [ OK ]
/opt/dmdbms/conf/dm.ini does not exist, use default dm.ini
Start DMSERVER success!
Dmserver is running.
DM Database is not OK, please wait...
DM Database is OK
Start DMSERVER success!
Dmserver is running.
DM Database is OK
Finished soft link DM current dm_DM8_TEST_202408.log to dm_DMSERVER.log
2024-08-26 09:54:10.677 [INFO] database P0000000101 T0000000000000000159  hpc_clear_active_trx adjust n_crash_active_trx from 0 to 0.
2024-08-26 09:54:10.677 [INFO] database P0000000101 T0000000000000000101  backup control file /opt/dmdbms/data/DAMENG/dm.ctl to file /opt/dmdbms/data/DAMENG/dm_20240826095410_677754.ctl
2024-08-26 09:54:10.680 [INFO] database P0000000101 T0000000000000000101  backup control file /opt/dmdbms/data/DAMENG/dm.ctl to file /opt/dmdbms/data/DAMENG/ctl_bak/dm_20240826095410_678491.ctl succeed
2024-08-26 09:54:10.680 [INFO] database P0000000101 T0000000000000000101  local instance name is DM8_TEST, mode is NORMAL, status is OPEN.
2024-08-26 09:54:10.680 [INFO] database P0000000101 T0000000000000000101  SYSTEM IS READY.
2024-08-26 09:54:10.680 [INFO] database P0000000101 T0000000000000000101  [for dem]SYSTEM IS READY.
2024-08-26 09:54:10.680 [INFO] database P0000000101 T0000000000000000101  set g_dw_stat from UNDEFINED to NONE success, g_dw_recover_stop is 0
2024-08-26 09:54:11.677 [INFO] database P0000000101 T0000000000000000156  trx4_min_tid_collect set min_active_id_opt, min_active_id: 6753, first_tid: 6006
2024-08-26 09:54:14.013 [INFO] database P0000000101 T0000000000000000257  dthrd_info_add nth:64, dthrd_info:0x7fc95e511e40, thrd_name:dm_sql_thd
2024-08-26 09:54:14.052 [INFO] database P0000000101 T0000000000000000277  dthrd_info_add nth:84, dthrd_info:0x7fc95e511e40, thrd_name:dm_sql_thd
2024-08-26 09:57:05.712 [INFO] database P0000000101 T0000000000000000247  checkpoint requested by INI_INTERVAL, rlog free space[2135257088], used space[12218368]
2024-08-26 09:57:05.712 [INFO] database P0000000101 T0000000000000000247  checkpoint generate by ckpt_interval
2024-08-26 09:57:05.712 [INFO] database P0000000101 T0000000000000000205  checkpoint begin, used_space[12218368], free_space[2135257088]...
2024-08-26 09:57:05.717 [INFO] database P0000000101 T0000000000000000205  ckpt2_log_adjust: full_status: 160, ptx_reserved: 0
2024-08-26 09:57:05.717 [INFO] database P0000000101 T0000000000000000205  ckpt2_log_adjust: ckpt_lsn(43947), ckpt_fil(0), ckpt_off(12218368), cur_lsn(43980), l_next_seq(3159), g_next_seq(3159), cur_free(12234752), total_space(2147475456), used_space(16384), free_space(2147459072), n_ep(1), db_open_id(1)
2024-08-26 09:57:05.717 [INFO] database P0000000101 T0000000000000000205  checkpoint end, 0 pages flushed, used_space[16384], free_space[2147459072].
2024-08-26 10:00:05.750 [INFO] database P0000000101 T0000000000000000247  checkpoint requested by INI_INTERVAL, rlog free space[2147459072], used space[16384]
2024-08-26 10:00:05.750 [INFO] database P0000000101 T0000000000000000247  checkpoint generate by ckpt_interval
2024-08-26 10:00:05.750 [INFO] database P0000000101 T0000000000000000205  checkpoint begin, used_space[16384], free_space[2147459072]...
2024-08-26 10:00:05.750 [INFO] database P0000000101 T0000000000000000205  ckpt2_log_adjust->rlog4_first_rpkg_seqno_get, fil_id:0, off:12234752, code:-723, l_next_seq:1911, clsn_l_seqno:3155, change db_open_id from 0 to 1
2024-08-26 10:00:05.753 [INFO] database P0000000101 T0000000000000000205  ckpt2_log_adjust: full_status: 160, ptx_reserved: 0
2024-08-26 10:00:05.753 [INFO] database P0000000101 T0000000000000000205  ckpt2_log_adjust: ckpt_lsn(43980), ckpt_fil(0), ckpt_off(12234752), cur_lsn(43980), l_next_seq(3159), g_next_seq(3159), cur_free(12234752), total_space(2147475456), used_space(0), free_space(2147475456), n_ep(1), db_open_id(1)
2024-08-26 10:03:05.787 [INFO] database P0000000101 T0000000000000000247  checkpoint requested by INI_INTERVAL, rlog free space[2147475456], used space[0]
2024-08-26 10:03:05.787 [INFO] database P0000000101 T0000000000000000247  checkpoint generate by ckpt_interval
2024-08-26 10:03:05.787 [INFO] database P0000000101 T0000000000000000205  checkpoint begin, used_space[0], free_space[2147475456]...
2024-08-26 10:03:05.788 [INFO] database P0000000101 T0000000000000000205  ckpt2_log_adjust: full_status: 160, ptx_reserved: 0
2024-08-26 10:03:05.788 [INFO] database P0000000101 T0000000000000000205  ckpt2_log_adjust: ckpt_lsn(43980), ckpt_fil(0), ckpt_off(12234752), cur_lsn(43980), l_next_seq(3159), g_next_seq(3159), cur_free(12234752), total_space(2147475456), used_space(0), free_space(2147475456), n_ep(1), db_open_id(1)

2.2 数据库启停与连接操作

  停止、启动、重启数据库命令如下:

[dmdba@VM-8-6-centos opt]$ docker stop dm8_test
dm8_test
[dmdba@VM-8-6-centos opt]$ docker start dm8_test
dm8_test
[dmdba@VM-8-6-centos opt]$ docker restart dm8_test
dm8_test

  执行以下命令进入DM8容器:

[dmdba@VM-8-6-centos opt]$ docker exec -it dm8_test bash
root@09bd3a8a21a9:/#

  根据先前docker logs命令输出可以看出,容器内不已经初始化了一个数据库实例;数据库安装位置在/opt/dmdbms,而数据库实例位置在/opt/dmdbms/data/DAMENG
  如果使用docker容器里面的disql交互工具,进入容器后需要先执行以下命令防止中文乱码:

source /etc/profile

  切换到/opt/dmdbms/bin,执行以下命令使用disql连接数据库。DBA用户密码已由先前的docker inspect命令返回结果给出:

root@09bd3a8a21a9:/opt/dmdbms/bin# ./disql SYSDBA/SYSDBA001

Server[LOCALHOST:5236]:mode is normal, state is open
login used time : 2.540(ms)
disql V8
SQL> 

  此时能够看出已成功连接到数据库。

  社区地址:https://eco.dameng.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值