ドッカーコンテナー内で実行されているJavaアプリケーションがあります。私はこのコンテナをECSクラスタに展開しました。私はJMXポートを公開したいので、そのマシンにインストールされているCollectDエージェントを使ってJVM統計を収集することができます。ドッカー内のJMXポートを公開するECSクラスターで実行されているコンテナー
は、JVMのparams私は私のJavaアプリで指定されていることは、私は私が非ドッキングウィンドウ環境では、このアプリケーションを実行する場合、このJMXポートに接続することができる午前
JAVA_OPTS="-Dspring.config.location=classpath:/base/ -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8008 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.net.preferIPv4Stack=true -Djava.rmi.server.hostname=10.0.7.118
です。しかし、私はDockerで同じことをすることができません。
私はこのポートを外部の世界に公開できるように、私のタスク定義にポートマッピングを与えました。私が知っている、もし私がドッカーの実行コマンドを使ってこのドッカーを実行していたのであれば、ポートマッピングに-p paramを指定することはできましたが、このイメージを展開するECSクラスタでこのアプリケーションを実行しているので、ですから、タスク定義によって提供されるポートマッピングに頼らざるを得ません。
TaskDefnition
"ContainerDefinitions": [
{
"Name": "MyApplication",
"Cpu": "2048",
"Essential": "true",
"Image": "location of the image",
"Memory": "8192",
"MemoryReservation": "4096",
"Environment": [
{
"Name": "Test",
"Value": {
"Fn::GetAtt": [
"SomeAttrib",
"SomeAccessKey"
]
}
}
],
"PortMappings": [
{
"HostPort": "8080",
"ContainerPort": "8080"
},
{
"HostPort": "8008",
"ContainerPort": "8008"
}
]
}
タスク定義を投稿する –
質問を更新しました –