国产化开发环境高效搭建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 -y1.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/containerd2. 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] DescriptionDocker Application Container Engine Documentationhttps://docs.docker.com Afternetwork-online.target firewalld.service Wantsnetwork-online.target [Service] Typenotify ExecStart/usr/bin/dockerd ExecReload/bin/kill -s HUP $MAINPID LimitNOFILEinfinity LimitNPROCinfinity LimitCOREinfinity TimeoutStartSec0 Delegateyes KillModeprocess Restarton-failure StartLimitBurst3 StartLimitInterval60s [Install] WantedBymulti-user.target启用并启动Docker服务sudo systemctl enable docker sudo systemctl start docker2.3 配置镜像加速为了提高镜像拉取速度配置国内镜像源sudo tee /etc/docker/daemon.json -EOF { registry-mirrors: [https://registry.docker-cn.com] } EOF sudo systemctl restart docker3. 达梦8.1数据库容器化部署3.1 准备达梦数据库镜像由于达梦官方可能不提供现成的Docker镜像我们需要自行构建。首先创建DockerfileFROM 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 nofile65536:65536 \ dm8:8.13.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 xrdpWindows用户可以使用内置的远程桌面连接工具(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 ~/.bashrc4.3 数据库连接配置开发应用程序时使用以下JDBC连接字符串连接达梦数据库jdbc:dm://localhost:5236 usernametest passwordtest123对于Spring Boot项目可以在application.properties中配置spring.datasource.urljdbc:dm://localhost:5236 spring.datasource.usernametest spring.datasource.passwordtest123 spring.datasource.driver-class-namedm.jdbc.driver.DmDriver5. 环境维护与优化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 环境迁移整个环境的优势在于可移植性。要迁移到新机器只需将Docker镜像保存为文件docker save -o dm8_image.tar dm8:8.1备份数据目录tar -czf dm_data_backup.tar.gz /opt/dmdata在新机器上恢复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在实际项目中这种容器化的达梦数据库部署方式显著提高了开发效率。环境搭建时间从原来的半天缩短到现在的半小时内且团队成员可以轻松共享相同的开发环境配置。
国产化开发环境搭建指南:用Docker在银河麒麟V10桌面版上快速部署达梦8.1数据库
国产化开发环境高效搭建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 -y1.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/containerd2. 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] DescriptionDocker Application Container Engine Documentationhttps://docs.docker.com Afternetwork-online.target firewalld.service Wantsnetwork-online.target [Service] Typenotify ExecStart/usr/bin/dockerd ExecReload/bin/kill -s HUP $MAINPID LimitNOFILEinfinity LimitNPROCinfinity LimitCOREinfinity TimeoutStartSec0 Delegateyes KillModeprocess Restarton-failure StartLimitBurst3 StartLimitInterval60s [Install] WantedBymulti-user.target启用并启动Docker服务sudo systemctl enable docker sudo systemctl start docker2.3 配置镜像加速为了提高镜像拉取速度配置国内镜像源sudo tee /etc/docker/daemon.json -EOF { registry-mirrors: [https://registry.docker-cn.com] } EOF sudo systemctl restart docker3. 达梦8.1数据库容器化部署3.1 准备达梦数据库镜像由于达梦官方可能不提供现成的Docker镜像我们需要自行构建。首先创建DockerfileFROM 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 nofile65536:65536 \ dm8:8.13.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 xrdpWindows用户可以使用内置的远程桌面连接工具(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 ~/.bashrc4.3 数据库连接配置开发应用程序时使用以下JDBC连接字符串连接达梦数据库jdbc:dm://localhost:5236 usernametest passwordtest123对于Spring Boot项目可以在application.properties中配置spring.datasource.urljdbc:dm://localhost:5236 spring.datasource.usernametest spring.datasource.passwordtest123 spring.datasource.driver-class-namedm.jdbc.driver.DmDriver5. 环境维护与优化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 环境迁移整个环境的优势在于可移植性。要迁移到新机器只需将Docker镜像保存为文件docker save -o dm8_image.tar dm8:8.1备份数据目录tar -czf dm_data_backup.tar.gz /opt/dmdata在新机器上恢复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在实际项目中这种容器化的达梦数据库部署方式显著提高了开发效率。环境搭建时间从原来的半天缩短到现在的半小时内且团队成员可以轻松共享相同的开发环境配置。