用docker快速搭建微服务本地仿真环境的核心是:环境一键就绪、依赖自动拉起、服务一键联调;通过执行脚本安装docker及compose并配置国内镜像源,用docker-compose.yml统一编排mysql、redis、nacos等中间件,各服务用多阶段dockerfile构建,最后通过compose网络实现容器间通信与联调。

用 Docker 快速搭一个能跑通、可调试、接近真实部署的微服务本地仿真环境,核心就三点:环境一键就绪、依赖自动拉起、服务一键联调。不用配 JDK、不装 MySQL、不记启动顺序,整套下来 10 分钟内搞定。
一步到位装好 Docker 环境
无论你是 Windows(开 WSL2)、macOS 还是 Linux,直接运行这行命令:
bash docker.sh)它会自动安装 Docker Engine + Docker Compose,并配置好国内镜像加速(轩辕镜像源),避开国外拉取慢、OpenJDK 镜像弃用等常见坑。
装完验证:
- docker --version → 显示类似 Docker version 27.0.3
- docker compose --version → 显示类似 Docker Compose version v2.27.0
Windows/macOS 用户顺手装个 Docker Desktop,图形界面看容器状态更直观。
用 docker-compose.yml 一键拉起全套依赖
微服务离不开中间件。别一个个手动 run,写一个 docker-compose.yml 把 MySQL、Redis、Nacos 全部声明好,比如:
MiniMax 图片理解 + 网络搜索 MCP 工具。适配 Docker 环境(极空间等),支持图片 OCR 识别、图像内容理解、网络搜索。API Key 安全存储在本地 credentials 文件,不暴露在代码中。
version: '3.8'
services:
mysql:
image: mysql:5.7
ports: ["3306:3306"]
environment: {MYSQL_ROOT_PASSWORD: root}
volumes: ["./mysql-data:/var/lib/mysql"]
<p>redis:
image: redis:7-alpine
ports: ["6379:6379"]</p><p>nacos:
image: nacos/nacos-server:v2.3.2
ports: ["8848:8848"]
environment:</p>
- MODE=standalone
- JVM_XMS=512m
- JVM_XMX=512m
保存后执行:docker-compose up -d,三秒内全部服务就绪,日志用 docker-compose logs -f 实时查看。
每个微服务写一个轻量 Dockerfile
Spring Boot 项目打包成 jar 后,Dockerfile 推荐用多阶段构建,干净又小:
FROM eclipse-temurin:17-jre-alpine ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime COPY your-service.jar app.jar USER nobody EXPOSE 8080 ENTRYPOINT ["java", "-jar", "app.jar"]
关键点:
- 基础镜像选 eclipse-temurin:17-jre-alpine,比 openjdk 更稳定、体积更小
- 用 USER nobody 避免 root 权限风险
- 加 TZ=Asia/Shanghai 防止日志时间错乱
本地联调靠 compose 统一编排
把业务服务也加进 docker-compose.yml,和中间件打通网络:
user-service:
build: ./user-service
ports: ["8080:8080"]
environment:
- SPRING_PROFILES_ACTIVE=docker
- NACOS_SERVER_ADDR=nacos:8848
- SPRING_REDIS_HOST=redis
depends_on: [nacos, redis]
<p>order-service:
build: ./order-service
ports: ["8081:8081"]
environment:</p>
- SPRING_PROFILES_ACTIVE=docker
- NACOS_SERVER_ADDR=nacos:8848
- SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/order_db
所有服务共享默认 bridge 网络,容器名(如 nacos、redis)就是 DNS 名,代码里直接写,不用改 host。
启动整套环境:docker-compose up -d;停止:docker-compose down;重置数据只需删掉 volumes 目录再 up 一次。










