Docker 本地开发环境搭建(MySQL5.7 + Redis7 + Nginx + 达梦8)- Windows11 版 2.0

拉取mysql

docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:5.7.44

docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:5.7.44 docker.io/mysql:5.7.44

拉取redis

docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/redis:7.2-alpine

docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/redis:7.2-alpine docker.io/redis:7.2-alpine

拉取nginx

docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginx:1.26.1-alpine

docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginx:1.26.1-alpine docker.io/nginx:1.26.1-alpine

Docker 本地开发环境搭建(MySQL5.7 + Redis7 + Nginx + 达梦8)- Windows11 版

📦 一、环境说明

适用于 Windows 11 的本地开发环境,一键搭建以下组件:

  • ✅ MySQL 5.7.44
  • ✅ Redis 7.2(带密码、持久化)
  • ✅ Nginx 1.26.1(静态页面+代理支持)
  • ✅ 达梦数据库 DM8(自动建库、建用户)

🧰 二、环境准备

1. 安装 Docker Desktop for Windows

前往官网下载并安装:

👉 https://www.docker.com/products/docker-desktop/

⚠️ 安装时务必启用:

  • WSL2(推荐)或 Hyper-V
  • Virtual Machine Platform(如未启用,可在 PowerShell 中执行):
powershell 复制代码
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

并重启系统。


2. 创建目录结构

在你喜欢的路径下创建一个项目文件夹(如:D:\docker-dev-env

bash 复制代码
docker-dev-env/
├── app/                  ← 放静态前端页面
├── mysql/
│   ├── data/
│   └── conf.d/
├── redis/
│   └── data/
├── nginx/
│   └── conf.d/
├── dm8/
│   ├── data/
│   └── init/
│       └── init.sql      ← 达梦初始化脚本
├── docker-compose.yml
├── start.bat             ← 一键启动脚本
└── stop.bat              ← 一键关闭脚本

⚙️ 三、Docker Compose 配置

文件:docker-compose.yml

yaml 复制代码
version: '3.8'
services:
  mysql:
    image: mysql:5.7.44
    container_name: mysql
    restart: always
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: root123
      MYSQL_DATABASE: devdb
    volumes:
      - ./mysql/data:/var/lib/mysql
      - ./mysql/conf.d:/etc/mysql/conf.d
    networks:
      - dev-net

  redis:
    image: redis:7.2-alpine
    container_name: redis
    restart: always
    ports:
      - "6379:6379"
    command: redis-server --requirepass yourpassword
    volumes:
      - ./redis/data:/data
    networks:
      - dev-net

  nginx:
    image: nginx:1.26.1-alpine
    container_name: nginx
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx/conf.d:/etc/nginx/conf.d
      - ./app:/usr/share/nginx/html
    depends_on:
      - mysql
      - redis
    networks:
      - dev-net

  dameng:
    image: xuxuclassmate/dameng:v8.1
    container_name: dameng8
    restart: always
    ports:
      - "5236:5236"
    environment:
      PAGE_SIZE: 16
      SYSDBA_PWD: SYSDBA123456  # 可自定义
    volumes:
      - ./dm8/data:/opt/dmdbms/data
      - ./dm8/init:/docker-entrypoint-initdb.d
    networks:
      - dm-net


networks:
  dev-net:
    driver: bridge

🧾 四、达梦数据库初始化 SQL

文件路径:dm8/init/init.sql

sql 复制代码
-- 自动初始化达梦数据库(首次启动执行一次)
create tablespace TESTDATA datafile 'TESTDATA01.DBF' size 200;
create user test identified by test123 default tablespace TESTDATA;
grant dba to test;

执行后你可以使用如下命令连接该用户:

bash 复制代码
docker exec -it dm8 bash -c "disql test/test123"

🖥️ 五、启动和关闭脚本(适用于 Win11)

start.bat

bat 复制代码
@echo off
echo 启动本地开发环境...
docker-compose up -d
pause

stop.bat

bat 复制代码
@echo off
echo 停止本地开发环境...
docker-compose down
pause

将以上内容分别保存为 start.batstop.bat,双击即可一键启动或关闭所有容器。


🧪 六、测试连接

1. MySQL 测试

bash 复制代码
docker exec -it mysql mysql -uroot -proot123 -e "SHOW DATABASES;"

2. Redis 测试

bash 复制代码
docker exec -it redis redis-cli -a yourpassword ping

3. 达梦测试

bash 复制代码
docker exec -it dm8 bash -c "disql test/test123"

📌 七、小贴士

  • 所有服务数据均已挂载本地,重启容器不会丢数据
  • 你可以在 app 目录下放置前端静态资源,即可通过 http://localhost 访问
  • 达梦初始化 SQL 只在首次运行容器时执行一次
  • 推荐将 .env 配置引入密码、数据库名等参数,以增强可维护性

✅ 现在你已经拥有了一个可以"一键启动 + 自动初始化"的本地开发环境,适合快速开发、联调和集成测试!

🚀 欢迎扩展:Kafka、MinIO、Elasticsearch、MongoDB 等服务,只需在 docker-compose.yml 中添加即可。

复制代码
---

需要我将 `.yml` 和 `init.sql` 也以纯文本形式贴出来吗?或者要打成一个 GitHub 模板也可以。你怎么方便我就怎么来。
相关推荐
Free Tester7 小时前
基于已有容器生成Dockerfile
docker
lcx_defender7 小时前
【Docker】Docker部署运行nacos
运维·docker·容器
啦啦啦小石头8 小时前
docker添加用户权限不使用sudo
运维·docker·容器
cuber膜拜8 小时前
Weaviate 简介与基本使用
数据库·python·docker·向量数据库·weaviate
Swift社区9 小时前
Nginx 反向代理配置 React 前端与 Python 后端
前端·nginx·react.js
xuefuhe9 小时前
Docker常用命令
docker
云草桑9 小时前
15分钟快速了解 Odoo
数据库·python·docker·postgresql·.net·odoo
春日见9 小时前
Autoware使用教程
大数据·人工智能·深度学习·elasticsearch·搜索引擎·docker·容器
Dontla9 小时前
Kubernetes流量管理双雄:Ingress与Gateway API解析(Nginx与Ingress与Gateway API的关系)
nginx·kubernetes·gateway
阿_焦10 小时前
docker部署dify踩坑笔记
docker·ai·dify