#java #docker #jmx
#java #docker #jmx
Вопрос:
Я пытаюсь получить показатели из процесса Java, который выполняется в контейнере docker. Процесс был запущен с помощью следующей команды, но попытка получить к нему доступ через jconsole в качестве теста приводит к повторной попытке «сбой соединения»?
docker run -d --name=process-2-kafka --restart=always -p 22222:22222 -v
/var/local/Blogs_Services/ProcessKafaka/:/program -w /program openjdk:8
java
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=22222 -
Dcom.sun.management.jmxremote.ssl=false -
Dcom.sun.management.jmxremote.authenticate=false -jar testkafka.jar -
Dcom.sun.management.jmxremote.local.only=false –
Djava.rmi.server.hostname=192.www.xxx.yy –
Dcom.sun.management.jmxremote.rmi.port=22222
Я добавил rmi.port и server.hostname после поиска в Интернете, но по-прежнему выдает ту же ошибку. У кого-нибудь есть решение для этого?
Комментарии:
1. Можете ли вы подключить telnet к порту изнутри и снаружи вашего контейнера docker?
2. Контейнер запускается на чужом компьютере. Мне нужно будет получить доступ к этому компьютеру, чтобы проверить. Дайте мне минутку. Спасибо
3. Я могу подключиться по telnet к порту вне контейнера, но не уверен, как это сделать внутри контейнера, не прерывая его запущенный процесс.
Ответ №1:
Общеизвестно, что подключения JMX к контейнерам вызывают разочарование. Я бы предложил попробовать две вещи:
-
Используйте отдельный порт для
jmxremote.port
иjmxremote.rmi.port
(например, 22222 и 22223) и перенаправьте оба из них в docker -
Задайте в качестве вашего
java.rmi.server.hostname
имени, напримерdockerhost
, и добавьтеdockerhost
IP-адрес компьютера, на котором размещен контейнер, в ваш файл hosts на всех компьютерах, на которых запущен контейнер docker, сам контейнер docker и компьютер, на котором вы запускаете jconsole. Затем, когда вы пытаетесь подключиться к JMX, используйтеdockerhost
в URL вместо IP-адреса.
Возможно, это не решит вашу проблему, но скрестив пальцы, удачи!
Комментарии:
1. итак, это не сработало, но спасибо за предложение.