gpt4 book ai didi

java - 连接Eclipse到Docker容器进行远程调试

转载 作者:行者123 更新时间:2023-12-01 23:30:47 27 4
gpt4 key购买 nike

我正在尝试将 eclipse 连接到我正在运行的 docker 容器,但遇到了麻烦。

我的docker运行命令如下:

docker run --rm -it -p 8000:8000 -p=8668:8080 -p 8010:8009 -p 8443:8443 \
--name myContainer -h theContainer -e JVM_ROUTE=myContainer1 myContainer:qa

在 Eclipse 中,我使用 localhost 作为主机,使用 8000 作为端口进行连接。我转到“运行”->“调试配置”->“远程 Java 应用程序”,然后创建了一个新的调试配置。

my project debugging

当我单击“应用”,然后单击“调试”时,我收到弹出错误消息无法连接到远程虚拟机。

cant connect

我还需要做什么才能使远程调试正常工作?

最佳答案

可以通过以下方式远程调试在 docker 容器中运行的 java 应用程序

  1. 启用JDWP对于容器中的java进程,例如

    java -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y [...]

    或者使用JAVA_OPTS环境变量

    JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y"

    请注意suspend=y将阻止应用程序启动,直到远程调试器连接到 JVM。如果suspend=n使用后,应用程序将正常启动,以便稍后连接远程调试器。

  2. 连接到进程,例如通过您的 IDE,使用 address=<port> 中指定的端口上面的设置,以及重要的是 docker 主机 的 IP 地址,除非您在 Linux 上运行,否则可能不是 localhost 。如果您使用docker-machine ,可以使用 docker-machine ip 显示docker主机ip ,例如

    $ docker-machine ip
    192.168.99.100

关于java - 连接Eclipse到Docker容器进行远程调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49757830/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com