docker-library / cassandra

Docker Official Image packaging for Cassandra
Apache License 2.0
262 stars 282 forks source link

jmx port in host mode #253

Closed ibouziane closed 1 year ago

ibouziane commented 2 years ago

We are trying to run multiple containers with the same image in host mode. To every image, we affect an IP address that we configure as a sub interface. If we use the same port: JVM_EXTRA_OPTS=-Djava.rmi.server.hostname=192.168.10.51 -Dcom.sun.management.jmxremote.rmi.port=7199 -Dcassandra.jmx.remote.port=7199 we have port already in use error. If we specify different port for each container, the host is listening on 0.0.0.0 even if we specify java.rmi.server.hostname we end up with all containers listening on all configured jmx ports and strange behavior of the cluster.

wglambert commented 2 years ago

That'd be from https://github.com/docker-library/cassandra/blob/b3332696b4a6a4405ebf95a4c4065543ee1a073d/4.0/docker-entrypoint.sh#L43-L49

Any reason for the host networking? It'd be a lot easier without it for this image

ibouziane commented 2 years ago

Thank you for your answer. The reason is performance, we have better performance in this mode than when bridging, I don't know if you can confirm that too. It was possible to set the IP address via cassandra-env.sh.

tianon commented 1 year ago

If our entrypoint is causing problems, I would definitely recommend just skipping it entirely (--entrypoint cassandra, etc).

For help doing so, I'd suggest a dedicated support forum, such as the Docker Community Forums, the Docker Community Slack, or Stack Overflow.