国产化开发环境搭建指南:用Docker在银河麒麟V10桌面版上快速部署达梦8.1数据库
2026/6/8 21:59:31 网站建设 项目流程

国产化开发环境高效搭建:Docker与达梦8.1在银河麒麟V10上的实践

对于需要在信创环境下进行软件开发的程序员来说,快速搭建一个稳定、高效的本地开发环境是项目成功的第一步。本文将详细介绍如何在银河麒麟V10桌面版操作系统上,利用Docker容器技术快速部署达梦8.1数据库,打造一个可移植、易维护的开发环境。

1. 环境准备与基础配置

在开始之前,我们需要确保开发机器满足基本要求。推荐使用搭载飞腾2000处理器的硬件平台,预装银河麒麟V10桌面版操作系统。这个组合为国产化开发提供了坚实的硬件和软件基础。

1.1 系统检查与更新

首先,通过以下命令检查系统基本信息:

uname -a cat /etc/os-release

确保系统已经更新到最新版本:

sudo apt update && sudo apt upgrade -y

1.2 Docker环境准备

银河麒麟V10可能预装了较旧版本的Docker,我们需要先卸载旧版本:

sudo apt-get remove docker docker-engine docker.io containerd runc

然后清理残留文件:

sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd

2. Docker安装与优化配置

2.1 安装最新版Docker

对于ARM架构的飞腾2000平台,我们需要下载适配的Docker二进制包:

wget https://download.docker.com/linux/static/stable/aarch64/docker-20.10.9.tgz tar -xzvf docker-20.10.9.tgz sudo cp docker/* /usr/bin/

2.2 配置Docker服务

创建systemd服务文件/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 ExecStart=/usr/bin/dockerd ExecReload=/bin/kill -s HUP $MAINPID LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity TimeoutStartSec=0 Delegate=yes KillMode=process Restart=on-failure StartLimitBurst=3 StartLimitInterval=60s [Install] WantedBy=multi-user.target

启用并启动Docker服务:

sudo systemctl enable docker sudo systemctl start docker

2.3 配置镜像加速

为了提高镜像拉取速度,配置国内镜像源:

sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://registry.docker-cn.com"] } EOF sudo systemctl restart docker

3. 达梦8.1数据库容器化部署

3.1 准备达梦数据库镜像

由于达梦官方可能不提供现成的Docker镜像,我们需要自行构建。首先创建Dockerfile:

FROM kylin:V10 # 安装基础依赖 RUN apt-get update && apt-get install -y \ libaio1 \ libncurses5 \ && rm -rf /var/lib/apt/lists/* # 创建dmdba用户 RUN groupadd dinstall && \ useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba && \ echo "dmdba:dmdba" | chpasswd # 创建工作目录 RUN mkdir -p /opt/dmdbms && \ chown -R dmdba:dinstall /opt/dmdbms # 复制达梦安装包 COPY dm8_setup_rh6_64_ent_8.1.1.78_20200430.iso /tmp/dm8.iso # 挂载并安装达梦数据库 RUN mkdir -p /mnt/dm8 && \ mount -o loop /tmp/dm8.iso /mnt/dm8 && \ cd /mnt/dm8 && \ ./DMInstall.bin -i && \ umount /mnt/dm8 && \ rm /tmp/dm8.iso # 设置环境变量 ENV PATH=/opt/dmdbms/bin:$PATH ENV LD_LIBRARY_PATH=/opt/dmdbms/bin:$LD_LIBRARY_PATH # 初始化数据库 RUN mkdir -p /opt/dmdata && \ chown dmdba:dinstall /opt/dmdata && \ su - dmdba -c "dminit path=/opt/dmdata" # 暴露端口 EXPOSE 5236 # 启动服务 CMD ["dmserver", "/opt/dmdata/DAMENG/dm.ini"]

构建镜像:

docker build -t dm8:8.1 .

3.2 运行达梦数据库容器

使用以下命令启动容器:

docker run -d \ --name dm8-server \ -p 5236:5236 \ -v /opt/dmdata:/opt/dmdata \ --ulimit nofile=65536:65536 \ dm8:8.1

3.3 数据库初始化

进入容器进行数据库初始化:

docker exec -it dm8-server /bin/bash su - dmdba disql SYSDBA/SYSDBA

在SQL提示符下执行初始化脚本:

CREATE TABLESPACE test_data datafile '/opt/dmdata/test_data_01.dbf' size 1024; CREATE USER test IDENTIFIED BY test123 DEFAULT TABLESPACE test_data; GRANT DBA TO test;

4. 开发环境整合与远程访问

4.1 配置远程桌面访问

为了便于从Windows开发机访问银河麒麟环境,可以安装xrdp服务:

sudo apt install xrdp -y sudo systemctl enable xrdp sudo systemctl start xrdp

Windows用户可以使用内置的远程桌面连接工具(mstsc)连接到银河麒麟桌面环境。

4.2 开发工具配置

在银河麒麟环境中安装常用开发工具:

sudo apt install git maven openjdk-8-jdk -y

配置Java开发环境:

echo 'export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-arm64' >> ~/.bashrc echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc source ~/.bashrc

4.3 数据库连接配置

开发应用程序时,使用以下JDBC连接字符串连接达梦数据库:

jdbc:dm://localhost:5236 username=test password=test123

对于Spring Boot项目,可以在application.properties中配置:

spring.datasource.url=jdbc:dm://localhost:5236 spring.datasource.username=test spring.datasource.password=test123 spring.datasource.driver-class-name=dm.jdbc.driver.DmDriver

5. 环境维护与优化

5.1 数据持久化与备份

为了确保数据安全,我们已将数据库文件挂载到宿主机/opt/dmdata目录。可以设置定期备份:

# 创建备份脚本 cat > /usr/local/bin/backup_dm.sh <<'EOF' #!/bin/bash BACKUP_DIR=/opt/dm_backups mkdir -p $BACKUP_DIR tar -czf $BACKUP_DIR/dm_backup_$(date +%Y%m%d).tar.gz /opt/dmdata find $BACKUP_DIR -type f -mtime +7 -delete EOF # 设置可执行权限 chmod +x /usr/local/bin/backup_dm.sh # 添加定时任务 (crontab -l 2>/dev/null; echo "0 2 * * * /usr/local/bin/backup_dm.sh") | crontab -

5.2 性能监控

使用以下命令监控数据库性能:

# 查看容器资源使用情况 docker stats dm8-server # 进入容器查看数据库状态 docker exec -it dm8-server bash su - dmdba disql SYSDBA/SYSDBA

在SQL提示符下可以执行各种监控命令:

-- 查看会话信息 SELECT * FROM V$SESSION; -- 查看SQL执行情况 SELECT * FROM V$SQLAREA;

5.3 环境迁移

整个环境的优势在于可移植性。要迁移到新机器,只需:

  1. 将Docker镜像保存为文件:
docker save -o dm8_image.tar dm8:8.1
  1. 备份数据目录:
tar -czf dm_data_backup.tar.gz /opt/dmdata
  1. 在新机器上恢复:
docker load -i dm8_image.tar tar -xzf dm_data_backup.tar.gz -C / docker run -d --name dm8-server -p 5236:5236 -v /opt/dmdata:/opt/dmdata dm8:8.1

在实际项目中,这种容器化的达梦数据库部署方式显著提高了开发效率。环境搭建时间从原来的半天缩短到现在的半小时内,且团队成员可以轻松共享相同的开发环境配置。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询