idea调试远程docker中的springboot项目指南

作者:袖梨 2026-08-13

idea调试远程docker中的springboot项目指南的重点在于把前置条件、操作顺序和容易误判的地方分清楚。

开发环境

  1. idea-2023(放心,旧版本也可以远程调试)
  2. Java版本:17

生产环境

  1. docker版本:23.0.3
  2. Java版本1:openjdk:17.0.2(基于Java17的项目)
  3. Java版本2:adoptopenjdk:8-jdk-openj9(基于Java8的项目)

docker配置

Java8项目的docker配置

dockerFile

FROM adoptopenjdk:8-jdk-openj9RUN mkdir -p /opt/projects/admin-apiRUN mkdir -p /var/lib/docker/containers/admin-api/WORKDIR /opt/projects/admin-apiCOPY ./admin-api.jar ./#EXPOSE 2000# 启动服务ENV JAVA_OPTS="-server -Xms1024m -Xmx1024m -Xss256k -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=10002"CMD java ${JAVA_OPTS} -Djava.security.egd=file:/prod/./urandom -jar admin-api.jar --spring.profiles.active=prod

在jar启动命令中加入JVM参数:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=10002

作用:启动时支持远程调试,监听10002端口,

请确保该端口已被防火墙放行,阿里云服务器的安全策略中也要放行。

docker-compose.yml

  admin-api:    build:      context: admin-api    container_name: admin-api    environment:      - TZ=Asia/Shanghai      - JAVA_OPTS=-server -Xms1024m -Xmx1024m -Xss256k -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=10002    hostname: admin-api    image: admin-api    networks:      mall4j-network:        ipv4_address: 192.168.159.9    ports:      - "8112:8112"      - "10002:10002"    restart: always    volumes:      - ./cert:/cert      - ./admin-api/log:/opt/projects/admin-api/log

你会发现,dockerFile和docker-compose.yml中都有远程调试配置,实际上,docker-compose.yml会覆盖dockerFile。

Java17项目的docker配置

把 FROM adoptopenjdk:8-jdk-openj9 替换成 FROM openjdk:17.0.2

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=10002  

替换成:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:10002

开始调试

第一步:新建 远程JVM调试,旧版本idea新建Remote.

idea调试远程docker中的springboot项目指南

idea调试远程docker中的springboot项目指南

第二步:配置调试参数

第三步:启动调试

idea调试远程docker中的springboot项目指南

idea调试远程docker中的springboot项目指南

到此结束。

总结

相关文章

精彩推荐