Как приложение, работающее в контейнере docker, может обнаружить, что хост docker перезагрузился? - PullRequest
1 голос
/ 15 апреля 2020

У меня есть приложение (Django), работающее в контейнере docker на облачном провайдере. По разным причинам мне было бы полезно узнать, когда сам хост перезагрузился, и сохранить это событие где-нибудь, например, в базе данных. Очевидно, что легко определить, когда запускается само приложение, но это могло быть вызвано чем-то другим, кроме перезагрузки хоста. В теории я мог бы поймать SIGTERM, но опять же это не обязательно означает перезагрузку хоста.

Как обычно, когда я писал этот вопрос, я понял, что могу просто позвонить uptime и пройти через /proc/uptime при необходимости. , но разве это лучший способ?

1 Ответ

1 голос
/ 15 апреля 2020

Нет необходимости проходить через /proc/uptime, он должен быть уже доступен внутри контейнера и не иметь пространства имен и не изолирован:

$ cat /proc/uptime 
1545872.40 11868963.08

$ docker run -it --rm alpine cat /proc/uptime
1545882.60 11869040.00
...