Статья подготовлена для студентов курса «Разработчик Java» в образовательном проекте OTUS. В первой части мы рассмотрели новые возможности работы Java-приложения в Docker-е. В этой части рассмотрим вопрос, как мониторить работающее в Docker-е Java-приложение. Для мониторинга в Java-мире есть два очень популярных тула: VisualVM и jconsole. Давайте попробуем ими воспользоваться. В Dockerfile пишем такую команду запуска: CMD java -jar testJavaAppl.jar
Запускаем контейнер: docker run java-docker
Запускаем jconsole. И видим, что jconsole не видит наше приложение в контейнере, хотя оно и запущено на этом же хосте. Дело понятное, Java-приложение работает в контейнере, который хорошо изолирует приложение от внешнего мира, поэтому jconsole его и не видит. Чтобы снаружи получить доступ к приложению в контейнере, надо запустить контейнер с «проброшенными» наружу портами. В нашем случае надо пробросить порт jmx, к которому будет подключаться jconsole. Но чтобы этот порт пробросить, его снача