【问题标题】:Unable to connect to a remote server using JMX connection in visualvm from Docker无法使用来自 Docker 的 visualvm 中的 JMX 连接连接到远程服务器
【发布时间】:2017-06-08 12:13:46
【问题描述】:

我正在使用 visualvm 工具并尝试连接到我的远程服务器 ubuntu(14.04)。在 ubuntu 中,我的应用程序在 Docker 上运行。 Dockerfile 看起来像-

FROM anapsix/alpine-java:8_jdk
MAINTAINER user
ENV OFFLINE_DB_USERNAME abc123
ENV OFFLINE_DB_URL jdbc:mysql://x.x.x.x:xxxx/%s?useLegacyDatetimeCode=false&useTimezone=true&serverTimezone=UTC
ENV OFFLINE_DB_SERVER_URL jdbc:mysql://x.x.x.x:xxxx/offlineserver?useLegacyDatetimeCode=false&useTimezone=true&serverTimezone=UTC
ENV OFFLINE_DB_PASSWORD password123
CMD ["java", "-Dcom.sun.management.jmxremote","-Dcom.sun.management.jmxremote.port=9990", "-Dcom.sun.management.jmxremote.rmi.port=9991" "-Dcom.sun.management.jmxremote.local.only=false", "-Dcom.sun.management.jmxremote.authenticate=false","-Dcom.sun.management.jmxremote.ssl=false", "-Djava.rmi.server.hostname=x.x.x.x"
COPY sampleproject.jar /home/ubuntu/test/sampleproject.jar
CMD ["java","-jar","/home/ubuntu/test/sampleproject.jar"]
Expose 9990

我执行了以下命令来检查 port:9990 是否正在侦听。它显示了以下输出-

$ netstat -lp | grep 9990
tcp6       0      0 [::]:9990               [::]:*                  LISTEN      1666/docker-proxy

但是在尝试使用 hostname:port(x.x.x.x:9990) 连接到远程服务器时,我收到错误消息 - 无法使用 service:jmx:rmi:///jndi/rmi:// 连接到 x.x.x.x:9990 x.x.x.x:9990/jmxrmi.

【问题讨论】:

标签: java ubuntu-14.04 dockerfile jmx jvisualvm


【解决方案1】:

如何从 Docker 镜像创建容器很重要。

如果您想公开端口以便从容器外部进行连接,那么您需要在您的 docker run 命令旁边传递:

-p 9990:9990

【讨论】:

  • 我无法从外部 ping docker ip 地址。谁能帮我解决这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-29
  • 1970-01-01
  • 2011-12-29
  • 1970-01-01
  • 2016-04-20
  • 1970-01-01
相关资源
最近更新 更多