在微服务架构中,Docker 已成为部署和调试服务的标准工具。它将应用及其依赖打包成轻量级容器,确保环境一致性,极大简化了从开发到生产的流程。本教程将从零开始,手把手教你如何使用 Docker 部署一个典型的微服务项目,并介绍关键的调试技巧。
假设我们有一个简单的用户服务(User-Service),其目录结构如下:`
user-service/
├── src/ # 源代码
├── pom.xml # Maven配置文件(Java示例)
├── application.yml # 配置文件
└── Dockerfile # Docker构建文件`
Dockerfile 是构建镜像的蓝图。以下是一个针对Spring Boot Java项目的通用示例:`Dockerfile
# 使用官方Java运行时作为父镜像
FROM openjdk:11-jre-slim
WORKDIR /app
COPY target/user-service-*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]`
在项目根目录(Dockerfile所在目录)执行:`bash
# 构建镜像,-t 参数指定镜像名称和标签
docker build -t user-service:1.0 .
docker images | grep user-service`
`bash
# 运行容器,映射主机端口8080到容器端口8080,并设置容器名称
docker run -d -p 8080:8080 --name user-service-container user-service:1.0
docker ps
docker logs -f user-service-container`
对于多服务项目,推荐使用 docker-compose.yml 进行编排。示例:`yaml
version: '3.8'
services:
user-service:
build: ./user-service # Dockerfile所在路径
ports:
- "8080:8080"
networks:
- microservice-net
# 环境变量配置示例
environment:
mysql-db:
image: mysql:8.0
environment:
MYSQLROOTPASSWORD: rootpass
MYSQL_DATABASE: userdb
networks:
- microservice-net
ports:
networks:
microservice-net:
driver: bridge`
运行编排服务:`bash
# 在docker-compose.yml所在目录执行
docker-compose up -d
docker-compose ps
docker-compose down`
`bash
# 实时跟踪日志输出(最常用)
docker logs -f
docker logs --tail 100
docker logs --since 2024-01-01T10:00:00
docker logs `
`bash
# 进入运行中的容器(启动一个交互式shell)
docker exec -it
`
`bash
# 检查容器资源使用情况(类似top命令)
docker stats
docker top
docker inspect `
在Dockerfile中启用远程调试端口:`Dockerfile
FROM openjdk:11-jre-slim
WORKDIR /app
COPY target/user-service-*.jar app.jar
EXPOSE 8080 5005 # 暴露应用端口和远程调试端口
ENTRYPOINT ["java", "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005", "-jar", "app.jar"]`
运行容器时映射调试端口:`bash
docker run -d -p 8080:8080 -p 5005:5005 --name user-service-debug user-service:1.0`
然后在IDE(如IntelliJ IDEA)中配置远程调试,连接到 localhost:5005 即可进行断点调试。
`bash
# 测试服务间网络连通性(需进入容器)
docker exec
telnet localhost 8080
docker network inspect `
docker logs <container_name> 查看启动日志。.dockerignore 文件,排除不必要的文件。docker build -t user-service:1.1 .docker rm -f user-service-container##
通过本教程,你已掌握了使用Docker部署微服务项目的基本流程和核心调试方法。关键点在于:
实践是掌握这些技能的最佳途径。从一个简单的服务开始,逐步构建你的微服务集群,遇到问题时利用本文介绍的调试工具层层深入,你将成为Docker微服务部署与调试的专家。
如若转载,请注明出处:http://www.shhuimaijichuang.com/product/14.html
更新时间:2026-03-09 08:54:58