docker中调试java代码总结

Docker启动命令是java -jar *.jar

以shiro550为例子
在vulhub/shiro/CVE-2016-4437启动环境

docker-compose up -d


然后看一下当前容器启动的命令

docker ps -a --no-trunc

java -jar /shirodemo-1.0-SNAPSHOT.jar


将容器内的jar包复制出来

docker cp 容器id:/shirodemo-1.0-SNAPSHOT.jar .

然后ij idea新建项目,并且解压jar包到项目目录

unzip shirodemo-1.0-SNAPSHOT.jar -d 项目目录


然后将BOOT-INF/lib目录进行Add as Libary

将BOOT-INF目录放在依赖中

配置远程调试

最后删掉之前启动的shiro550,通过如下命令启动shiro550

docker run -it -d --rm --name shiro550 -p 8000:8080 -p 127.0.0.1:5005:5005 vulhub/shiro:1.2.4 java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar /shirodemo-1.0-SNAPSHOT.jar

可以调试了

Docker启动命令是catalina.sh start(tomcat启动)

catalina.sh中添加

JPDA_TRANSPORT=dt_socket
JPDA_ADDRESS=5005
JPAD_SUSPEND=n

例子:
Shiro721
https://github.com/inspiringz/Shiro-721

Docker调试weblogic

docker-compose.yml例子

version: '2'
services:
  weblogic:
    image: vulhub/weblogic
    ports:
      - "7001:7001"
      - "8453:8453"

然后在Oracle/Middleware/user_projects/domains/base_domain/bin/setDomainEnv.sh
添加

export debugFlag="true"

Docker调试jboss

开发8787端口
JBOSS_HOME/bin/run.conf

posted @ 2024-02-05 16:10  BattleofZhongDinghe  阅读(51)  评论(0编辑  收藏  举报