It’s a bit tricky to enable JMX for Cassandra when running in Docker. I create a Cassandra Docker image
alexcheng/cassandra of version
3.11.2 with JMX authentication enabled, see the Dockerfile. The username and password to access JMX are both
cassandra. The environment variable
JMX_HOST has the default value of
localhost, and it should work most of the time. If
localhost doesn’t work , you can use the host’s IP address. After starting the container, you can access JMX using VisualVM or JConsole with address
localhost to the same value as
localhost is not used. Since SSL is not enabled, you need to use insecure connections.
On Mac, the local IP address can be obtained using
ipconfig getifaddr en0, so we can use following command to start the container when using IP address is required.
docker run --rm -p 7199:7199 -e "JMX_HOST=`ipconfig getifaddr en0`" alexcheng/cassandra