Не нашли встроенного способа включить статистику контейнера в журнал контейнера, но часть нашего решения может помочь вам в этом:
У нас есть задание CRON на хосте Docker, которое выполняет этот скрипт каждую минуту, в результате чего журнал статистики контейнера упорядочен в обратном хронологическом* порядке:
#!/бин/баш
# statshot.sh
MAX_LINES=1440
CONTAINER_NAME=мой_контейнер
LOG=~/${CONTAINER_NAME}.stats.log
# docker stats-heading + статистика в новый лог
статистика докеров --no-stream | grep -e 'КОНТЕЙНЕР' -e ${ИМЯ_КОНТЕЙНЕРА} | ts '[%Y-%m-%d %H:%M]' > ${LOG}_
# добавляем строки из текущего лога в новый лог
# (pre-touch, если его еще нет)
коснитесь ${LOG}
grep ${CONTAINER_NAME} ${LOG} | голова -${MAX_LINES} >> ${LOG}_
# заменить текущий журнал новым журналом
мв ${LOG}_ ${LOG}
Запускается каждую минуту и скатывается после 1440 строк, это дает нам 24-часовую историю жизненно важных функций контейнера.
Для ваших нужд (включая статистику в журнале контейнера) файл журнала, сгенерированный на хосте, может просто содержать одну/текущую строку статистики, но записываться в место, из которого контейнер может читать, и соответствующее задание CRON в контейнере повторяет его. утешить
* обратный порядок является побочным эффектом желания включить заголовок статистики Docker, но с более простым сценарием и меньшим количеством файловых операций ввода-вывода... приветствуются любые предложения сценариев для дальнейшего сокращения файловых операций ввода-вывода