私はしかし、この溶液を用いたカップルの問題を抱えているRMIポート自体を公開することなく、DockerのリモートJavaプロセスにVisualVMを接続できますか?
docker run \
--rm \
--entrypoint=java \
-p 9010:9010 \
my-user/my-image \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9010 \
-Dcom.sun.management.jmxremote.rmi.port=9010 \
-Dcom.sun.management.jmxremote.local.only=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname='192.168.99.100' \
-jar /my-app-1.0-SNAPSHOT.jar
として何かをして、ドッカーコンテナ内で実行されている、私のJavaプロセスにVisualVMのを接続することができました:私は
私のdevマシンと私の別のサーバーでプロセスを実行するために同じスクリプトを使いたいので、ホスト名を指定する必要はありません。
これは、1つのJVMだけを監視したい場合に機能します。しかし、私はドッカー作曲は、複数のコンテナにスケーリングすることができるサービスとしての私のJavaアプリにファイルを使用していますので、私はポート9010を公開することができますが、ホスト
Iに異なるポート番号にリンクされますSSHトンネルで遊んでいたが運がなかった。 JVMは、ポート32878からアクセスされること、すなわちコンテナ内の9010にマップされたとしても、アクセスすることを好まない。
どのようなアイデアですか?