Невозможно подключиться к удаленному серверу с помощью соединения JMX в VisualVM из Docker

Я использую инструмент 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

Я выполнил приведенную ниже команду, чтобы проверить, прослушивается ли порт: 9990 или нет. Он показал следующий результат:

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

Но при попытке подключиться к удаленному серверу с именем хоста: порт (xxxx: 9990) я получаю сообщение об ошибке: «Не удается подключиться к xxxx: 9990 с помощью службы: jmx: rmi:///jndi/rmi://xxxx: 9990». /jmxrmi.


person User123    schedule 08.06.2017    source источник


Ответы (1)


Имеет значение, как вы создаете контейнер из образа Docker.

Если вы хотите открыть порт для подключения извне контейнера, вам нужно пройти рядом с вашей командой docker run:

-p 9990:9990
person webdizz    schedule 08.06.2017
comment
Я не могу пропинговать IP-адрес докера извне. может кто-нибудь, пожалуйста, помогите мне решить эту проблему. - person User123; 12.06.2017