栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

部署在k8s或者docker中的java程序如何通过IDEA进行调试

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

部署在k8s或者docker中的java程序如何通过IDEA进行调试

一、暴露调试端口

代码在通过dockerfile进行镜像打包时需要在dockerfile中定义好要暴露的调试端口

EXPOSE 5005
ENTRYPOINT ["java","-jar","-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005","/demojenkins.jar"]
二、docker或者k8s中启动容器 1、docker
docker run -d -p 5005:5005 -p 8111:8111 java-demo-01:latest -t


注意: 如果通过docker命令在启动容器的时候没有在命令中暴露5005端口,只是dockerfile中定义暴露了5005端口,那么查看容器状态PORTS将会呈如下显示

这种只能说明对于Linux宿主机而言,容器的5005端口暴露出来了,Linux宿主机是能连上的,但是对于外部机器而言这个端口是无法访问的。所以在使用docker命令启动容器时一定要将5005端口暴露给外部机器

2、k8s

对于k8s而言则需要使用NodePort方式将5005端口暴露给外部机器

kubectl expose deployment javademo1 -n ceshi --name=debug --port=5005 --target-port=5005 --type=NodePort

也可以采用在kuboard图形化界面上修改容器信息,增加暴露端口

暴露后查看service会查到相应的NodePort形式的端口

三、远程调试

通过IDEA连接暴露出来的调试端口进行远程调试

1、配置远程调试


配置好之后,在代码上打上断点,切换到remote配置,点击debug按钮开始调试

出现“已连接到目标 VM, 地址: ‘‘10.10.10.41:31096’,传输: ‘套接字’’”字样,表示IDEA已经连接到远程JVM调试端口,可以触发代码进行调试了
当代码触发后,会停在打上断点的地方,可以进行逐步调试,查看变量等操作

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/913743.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号