022-docker与idea结合使用,以及docker断点调试

1、idea配置docker 部署

1.1、服务器端:服务器配置docker远程连接

vi /lib/systemd/system/docker.service  # ① 修改宿主机配置文件
#在 ExecStart 开头的这一行末尾添加 -H tcp://0.0.0.0:2375
systemctl daemon-reload && systemctl restart docker # ② 重启docker
firewall-cmd --zone=public --add-port=2375/tcp --permanent # ③ 防火墙开放端口2375

http://ip地址:2375/version

1.2、本地下载插件docker,然后配置

连接成功后我们便可查看docker下的容器和镜像 

然后添加dockerfile配置【其实就是打包镜像:docker build -t app:1.1 .】以及启动docker

 构建成功后,既部署载远程了。当然上一步也可以选择本地。

 

2、使用docker调试

为了保证测试环境与正式环境一致,我们大多使用docker,因为docker可以封装除了内核硬件之外的运行环境,docker将软件包以层的概念封装起来,保证在不同机器都会有一致的运行环境.

2.1、创建打包镜像配置

【其实就是打包镜像docker build -t app:1.1 .】这里记得勾选 Run built images 这样能够进入调试

添加dockerfile运行时配置,构建镜像配置,参看上面的配置

注意:若果都是本机记得5005 不要绑定映射,端口占用,非要写个 就随便绑定一个即可

2.2、新建一个Remote类型的Debug config

具体配置如下图

如果使用maven 多moudle的话在use module classpath选择要进行调试的moudle

在before launch:添加一个before选项,类型是launch docker before debug类型,现在你在第一步新增的DockerFile Run Config

配置docker启动

方式二、在custom command选项配置启动项目实例的java 命令,将图中圈起来的部分作为java命令的参数

java
-jar
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
/home/admin/app.jar

方式一、dockerfile中配置【推荐】

ENTRYPOINT ["sh","-c","java -Duser.timezone=GMT+08 -jar  -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 /home/admin/app.jar"] 

记得加入代理:agentlib:jdwp

注意dockerfile中配置

端口漏出

###暴露个jar运行的端口8081运行端口  5005调试端口
EXPOSE 8081 5005

 打断点调试即可

2.3、配置remote 不每次都构建镜像

因为上述before launch,添加了dockerfile配置,故每次都要构建进行

有修改时候使用上述,没有修改新建一个新的remote调试,不添加before launch即可

 

posted @ 2022-01-29 21:59  bjlhx15  阅读(1369)  评论(2编辑  收藏  举报
Copyright ©2011~2020 JD-李宏旭