2016-08-02 4 views
0

私はしかし、この溶液を用いたカップルの問題を抱えている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のを接続することができました:私は

  1. 私のdevマシンと私の別のサーバーでプロセスを実行するために同じスクリプトを使いたいので、ホスト名を指定する必要はありません。

  2. これは、1つのJVMだけを監視したい場合に機能します。しかし、私はドッカー作曲は、複数のコンテナにスケーリングすることができるサービスとしての私のJavaアプリにファイルを使用していますので、私はポート9010を公開することができますが、ホスト

Iに異なるポート番号にリンクされますSSHトンネルで遊んでいたが運がなかった。 JVMは、ポート32878からアクセスされること、すなわちコンテナ内の9010にマップされたとしても、アクセスすることを好まない。

どのようなアイデアですか?

答えて

0

私は、Webアプリケーションと休憩サービスの幅広いクラスタでドッカーを使用しています。 私のローカルブラウザ(私はWindows 10ユーザーです)に直接アクセスするには、私はプロキシコンテナをインストールしました。そのプロキシには1つの公開ポート「1080:1080」があります。 次に、プロキシプラグイン(FoxyProxy)でブラウザに行きます。そして、私は任意のポートに任意のアドレスにアクセスすることができます。これを使用すると、他のコンテナで他のポートマッピングを行う必要はなく、プロキシはすべてのトラフィックを処理します。私はコンテナに使用するコマンドです

service sshd start && sshpass -p 'password' ssh -o StrictHostKeyChecking=no -N -D 0.0.0.0:1080 localhost 
関連する問題