最近想学习下java GC优化,就用了一下VisualVM,在远程服务器启动了一个非docker的tomcat,很顺利的就连接了,但是用docker-compose启动的服务却

怎么也连不上,一定是docker的锅.

最终找到了解决方法,在这里 https://forums.docker.com/t/enable-jmx-rmi-access-to-a-docker-container/625

这篇文章中最重要的一句话就是

In my case, I am working with docker-compose please DON FORGET to expose the SAME PORT 6001 in the remote docker host (it won't work if you expose in another port differently that jmxremote.port and jmxremote.rmi.port):

一句话概括就是: docker-compose暴露的端口要跟jmx的端口一样

好了,问题解决,下面写出tomcat配置jmx的方法:

1. docker-compose.yml

web:
image: "registry.xxxxxx.com/msgbox/base_tomcat:tomcat7.42_jdk8u40"
ports:
- :
- :
- :
volumes:
- ./confs:/data1/confs
- ./web/webapps:/data1/xxx/webapps
- ./authconfs:/data1/authconfs
- ./web/logs:/data1/xxx/logs
environment:
- NAME_CONF=test-yf=/data1/xxx/bin/./
- RUN_COMMAND=catalina.sh jpda run
- JMX_PORT=
- JMX_HOST=10.77.6.164
- CATALINA_HEAP=-server -Xmx768m -Xmn100m -Xms768m
links:
- kafka

2. setenv.sh

if [[ ! -z "$JMX_PORT" ]]; then
if [ -z "$JMX_HOST" ]; then
JMX_HOST=$(hostname -i)
fi
CATALINA_EXTRA="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=${JMX_PORT} -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access -Djava.rmi.server.hostname=${JMX_HOST} -Dcom.sun.management.jmxremote.rmi.port=${JMX_PORT}"
fi

完成

docker-compose启动的tomcat无法远程连接jmx的更多相关文章

  1. 利用docker compose启动gitlab及runner

    添加docker compose配置文件 新建文件docker-compose.yml,输入如下内容: gitlab: image: 'gitlab/gitlab-ce:latest' contain ...

  2. docker构建mysql容器及Navicat 远程连接

    1. MySQL部署 1.1拉取MySQL镜像 docker pull mysql 查看镜像 docker images 1.2创建MySQL容器 首先建立所需要的 文件夹: docker run - ...

  3. Docker Compose 启动mysql,redis,rabbitmq

    这里使用的centos7,首先切换到root. sudo -s 首先去设置下载镜像,否则下载这三个东西要很久,而且可能失败. vim /etc/docker/daemon.json 内容如下: { & ...

  4. linux 配置tomcat运行远程监控(JMX)

    在实际使用中,我们经常要监控tomcat的运行性能.需要配置相应的参数提供远程连接来监控tomcat服务器的性能.本文详细介绍如何一步一步的配置tomcat相应参数.允许远程连接监控. 工具/原料 v ...

  5. jconsole远程连接 jmx配置注意事项

    由于在测试程序时需要收集程序运行时的内存,CPU等消耗情况.选择了jconsole这个jdk自带工具来观察.为了不影响程序运行状态,用远程连接的方式来具体观察. 首先,程序是放在ubutun系统服务器 ...

  6. Ubuntu18.04下安装Docker并配置SSL证书加密远程连接

    Docker下载与安装 下载安装包 国内网络连接docker镜像还是比较慢的,这里推荐直接下载docker镜像,Ubuntu镜像下载路径为:https://download.docker.com/li ...

  7. 用Docker Compose启动Nginx和Web等多个镜像

    安装docker-compose 运行命令 curl -L "https://github.com/docker/compose/releases/download/1.9.0/docker ...

  8. docker compose启动服务超时重启记录

    一.停docker systemctl stop docker 然后ps -aux grep docker发现有些docker进程还是存在,此时强杀存在的docker进程:ps -aux|grep d ...

  9. docker compose不同配置文件之间的 网络连接

    一.引用自https://blog.csdn.net/luckyjiet/article/details/80979378 二.

随机推荐

  1. 推荐15款响应式的 jQuery Lightbox 插件

    利用现代 Web 技术,网络变得越来越轻巧与.模态框是突出展现内容的重要形式,能够让用户聚焦到重要的内容上去.在这个列表中,我们编制了15款响应式的 jQuery 灯箱库,这将有助于开发人员创建和设计 ...

  2. 怎么使用jQuery

    jQuery的强大我何文启(个人主页:hovertree.com)就不用多说了,那么怎么使用jQuery呢? 首先,下载jquery.下载地址:http://hovertree.com/hvtart/ ...

  3. javascript如何设置DIV背景色为随机色

    随机色有两种格式: 效果预览:http://wjf444128852.github.io/DEMOLIST/JS/test/index.html 1.rgb(xxx,xxx,xxx) 2.#xxxxx ...

  4. You Don't Need jQuery

    前端发展很快,现代浏览器原生 API 已经足够好用.我们并不需要为了操作 DOM.Event 等再学习一下 jQuery 的 API.同时由于 React.Angular.Vue 等框架的流行,直接操 ...

  5. C# PPT Operator

    来自:http://blog.csdn.net/lxzh12345/article/details/47047491 最近在写一个工具,设计到将界面内容到处到PPT中,且导出的内容能够编辑.网上搜了很 ...

  6. “不要抄代码!自己的代码也不要抄!”

    在 Adventure 位于深圳的电子设备组装厂(SZE)里,小朱狠狠的对自己说. 他刚刚在调试 STM32F407VG 的 SPI 功能.就在昨天,他刚刚调试好了 STM32F407VG 的 USA ...

  7. Android-两种方式实现走马灯效果

    第一种方法(很普遍,很简单的在xml布局文件中设置TextView的属性): <TextView android:id="@+id/tv_text" android:layo ...

  8. IOS开发基础知识--碎片2

    六:获得另一个控件器,并实现跳转 UIStoryboard* mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboa ...

  9. Java 内部类的阐述

    创建一个Computer抽象类:用来在Test类中创建匿名抽象类 package com.zhiyou; public abstract class Computer { int a = 1; /** ...

  10. SDWebImage的使用

    - setItem:(CustomItem *)item { _item = item; // 占位图片 UIImage *placeholder = [UIImage imageNamed:@&qu ...