У меня есть контейнер Docker, который содержит процесс JVM. Когда процесс завершается, контейнер завершается и останавливается.Как я могу узнать, почему контейнер Docker остановлен?
Хотя, к счастью, редко, мой JVM может внезапно спускаться с жестким отказом, например. OutOfMemoryError. Когда это происходит, мой контейнер просто останавливается, как обычный выход JVM.
Я мог бы распределить ведение журнала и т. Д. Для обычного ведения журнала JVM, но в этом случае с жестким отказом я хочу знать умирающие слова JVM, которые обычно произносятся на stderr.
Есть ли способ узнать, почему мой контейнер остановился, оглядеться в журналах, stderr или что-то в этом роде?
Что вы видите в журналах 'docker' для остановленного контейнера? Вы пробовали подписаться на мероприятия? Демон 'docker' предоставляет API: https://docs.docker.com/reference/api/docker_remote_api_v1.16/ – Andy
Контейнер ушел, т. Е. Его нет, когда я делаю docker ps, поэтому я не знаю, как получить журналы на нем. Я проверю события api. У меня есть мониторинг, поэтому я знаю, что jvm умер ... Я просто не знаю, какие последние сообщения выводятся на stderr, которые не регистрируются (в случае OOM регистратор может даже не работать) – Greg
Вы можете запускать журналы докеров [ ContainerName] или [ContainerID] даже в остановленных контейнерах. Вы можете увидеть их с докером ps -a –