-
Bug
-
Resolution: Unresolved
-
P4
-
17
After starting a JVM process inside a docker container, I can access it using jcmd from the host, as long as I run as root:
$ sudo jcmd $PID .....
However, I cannot connect to the JVM process with JConsole, even if I run it as root:
$ sudo jconsole $PID
The JVM process's console (inside the container) prints:
Oct 13, 2021 12:07:01 AM sun.rmi.transport.tcp.TCPTransport$AcceptLoop run
WARNING: RMI TCP Accept-0: accept loop for ServerSocket[addr=0.0.0.0/0.0.0.0,localport=35857] throws
java.io.IOException: The server sockets created using the LocalRMIServerSocketFactory only accept connections from clients running on the host where the RMI remote objects have been exported.
at jdk.management.agent/sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(LocalRMIServerSocketFactory.java:114)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:413)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:377)
at java.base/java.lang.Thread.run(Thread.java:833)
$ sudo jcmd $PID .....
However, I cannot connect to the JVM process with JConsole, even if I run it as root:
$ sudo jconsole $PID
The JVM process's console (inside the container) prints:
Oct 13, 2021 12:07:01 AM sun.rmi.transport.tcp.TCPTransport$AcceptLoop run
WARNING: RMI TCP Accept-0: accept loop for ServerSocket[addr=0.0.0.0/0.0.0.0,localport=35857] throws
java.io.IOException: The server sockets created using the LocalRMIServerSocketFactory only accept connections from clients running on the host where the RMI remote objects have been exported.
at jdk.management.agent/sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(LocalRMIServerSocketFactory.java:114)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:413)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:377)
at java.base/java.lang.Thread.run(Thread.java:833)