JProfile能否连接到在Docker中运行的JVM?

8

我是JProfiler的新手。最近我遇到了一个问题。我的Java应用程序正在Docker中运行,这意味着JVM正在Docker中运行。但是我的JProfiler安装在主机上。我知道JProfiler必须连接到JVM。那么,有没有办法让JProfiler连接到在Docker中运行的JVM?


1
@PatrickAleman 那将是一个很好的答案。 - Ingo Kegel
可能是Remote profilling java application的重复问题。 - the8472
但是那个问题的答案并不是我所问的东西。 - shawn
远程只是任何本地或容器可以做的事情的子集,因此它在这里适用。 - the8472
3个回答

5

在按照指南操作后,我发现需要映射端口。docker run -p 8849:8849 imageName - Will Humphreys

4
您可以使用此Dockerfile;https://registry.hub.docker.com/u/gingerbeard/java8-jprofiler/dockerfile/
FROM dockerfile/java:oracle-java8
MAINTAINER gingerbeard <kulishovt@gmail.com>

RUN wget http://download-aws.ej-technologies.com/jprofiler/jprofiler_linux_8_1_2.tar.gz -P /tmp/ &&\
 tar -xzf /tmp/jprofiler_linux_8_1_2.tar.gz -C /usr/local &&\
 rm /tmp/jprofiler_linux_8_1_2.tar.gz

ENV JPAGENT_PATH="-agentpath:/usr/local/jprofiler8/bin/linux-x64/libjprofilerti.so=nowait"
EXPOSE 8849

CMD ["bash"]

请务必检查端口。


0

JProfiler GUI 通过 TCP 套接字连接到加载在被分析 JVM 中的分析代理。

即使被分析的 JVM 和 JProfiler GUI 运行在同一台机器上,这种情况始终如此。

调用 "Session->Integration wizards->New remote integration" 将为您提供手动设置说明。


1
我已经想通了。正确的方法是在容器内安装jprofiler和您的Java应用程序。在主机机器上使用“docker exec”启动jprofiler。然后,您可以在本地机器上监视您的容器。 - shawn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接