2016-06-17 5 views
1

私はjstatd -p 1099を起動してJavaアプリケーションを起動するドッカーイメージを持っています。私はまた、ドッカーファイルにポート1099を公開しています。AWS上のドッカーのリモートデバッグJVM

このドッカーイメージをAWS ElasticBeanstalkにデプロイしました.EBログからポートが公開されていることがわかりました。

/var/log/docker-ps.log 
------------------------------------- 
'docker ps' ran at Fri Jun 17 04:23:02 UTC 2016: 
CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS    PORTS    NAMES 
d3199a65e216  8b9c53bb10b6  "/app/run.sh"  5 minutes ago  Up 5 minutes  1099/tcp, 8080/tcp jolly_carson 

私は、VisualVMを使用してアプリケーションをプロファイルしたいと思います。どのように私は接続する正しいIPを見つけることができますか?ポート1099でアプリケーションのドメイン名にtelnet接続しようとするとタイムアウトになります。

答えて

1

コンテナのポートはインスタンスのポートにバインドされていません。これは、デバッグインタフェースを公開する必要がないためです。 SSHトンネルを開始し

$ sudo docker ps 
$ sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' <container_id> 
そのトンネルポート5005からローカルボックス上でそのIPアドレスとポート5005へ:コンテナのIPアドレスはで見つけることができます。

$ ssh [email protected] -L 5005:<ip>:5005 -N 
1

か、iptables

$ sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' stupefied_swartz 
172.17.0.2 
$ sudo iptables -t nat -A PREROUTING -p tcp --dport 5005 -j REDIRECT --to-destination 172.17.0.2:5005 
上でポートフォワーディングを設定することができます
関連する問題