Java Docker IBM SDK-8映像-获取线程/内存转储

Java Docker IBM SDK-8映像-获取线程/内存转储,java,docker,Java,Docker,我正在使用ibmcom/ibmjava:8-sdk映像。如何获取线程转储和内存转储?我使用-Xdump选项启动jvm。但是当我给出kill-3pid时,没有消息表明转储已经创建。我假设您正在向分离的容器发出kill命令。如果是这样,那么“docker logs”命令将有助于获取详细信息 我就是这样试的 1。已启动容器(分离状态): docker run --rm --detach --workdir /dockapp --volume /Users/parselva/docker-test:/d

我正在使用ibmcom/ibmjava:8-sdk映像。如何获取线程转储和内存转储?我使用-Xdump选项启动jvm。但是当我给出kill-3pid时,没有消息表明转储已经创建。

我假设您正在向分离的容器发出kill命令。如果是这样,那么“docker logs”命令将有助于获取详细信息

我就是这样试的

1。已启动容器(分离状态):

docker run --rm --detach --workdir /dockapp --volume /Users/parselva/docker-test:/dockapp ibmjava:latest java -Xdump:java:events=vmstart ThreadSleep
docker exec 97b37120ea7b ps -eaf | grep ThreadSleep

root         1     0  0 11:03 ?        00:00:00 java -Xdump:java:events=vmstart ThreadSleep
2。读取容器中java进程的pid:

docker run --rm --detach --workdir /dockapp --volume /Users/parselva/docker-test:/dockapp ibmjava:latest java -Xdump:java:events=vmstart ThreadSleep
docker exec 97b37120ea7b ps -eaf | grep ThreadSleep

root         1     0  0 11:03 ?        00:00:00 java -Xdump:java:events=vmstart ThreadSleep
3。向java进程发出信号:

docker exec 97b37120ea7b kill -3 1
docker logs 97b37120ea7b
JVMDUMP039I Processing dump event "user", detail "" at 2017/08/07 11:10:07 - please wait.
JVMDUMP032I JVM requested Java dump using '/dockapp/javacore.20170807.111007.1.0004.txt' in response to an event
JVMDUMP010I Java dump written to /dockapp/javacore.20170807.111007.1.0004.txt
JVMDUMP013I Processed dump event "user", detail "".
4。使用docker logs命令找到生成的日志文件的位置:

docker exec 97b37120ea7b kill -3 1
docker logs 97b37120ea7b
JVMDUMP039I Processing dump event "user", detail "" at 2017/08/07 11:10:07 - please wait.
JVMDUMP032I JVM requested Java dump using '/dockapp/javacore.20170807.111007.1.0004.txt' in response to an event
JVMDUMP010I Java dump written to /dockapp/javacore.20170807.111007.1.0004.txt
JVMDUMP013I Processed dump event "user", detail "".