#docker
#docker
Вопрос:
Есть ли какой-либо способ использовать --rm
опцию Docker, которая автоматически удаляет контейнер после его выхода, но позволяет сохранять журналы контейнера?
У меня есть приложение, которое создает контейнеры для обработки заданий, а затем, когда все задания завершены, контейнер завершает работу и удаляется для экономии места. Однако, в случае, если ошибка привела к преждевременному завершению процесса контейнера, я бы хотел сохранить файлы журналов, чтобы я мог подтвердить, что он вышел из системы или диагностировал неисправный выход.
Однако --rm
появляется опция для удаления журналов контейнера вместе с контейнером.
Ответ №1:
Войдите куда-нибудь за пределы контейнера.
-
Вы можете смонтировать каталог хоста в своем контейнере, чтобы журналы записывались в каталог хоста и сохранялись после rm.
-
Или вы можете смонтировать том в своем контейнере; который будет сохранен после rm
-
Или вы можете настроить rsyslog — или какой-либо аналогичный агент сбора журналов — для экспорта ваших журналов в удаленную службу. См . https://www.simulmedia.com/blog/2016/02/19/centralized-docker-logging-with-rsyslog / подробнее об этом решении.
Первые 2 являются взломами, но их легче запустить и запустить на вашей рабочей станции / сервере. Если все это размещено в облаке, может быть неплохой вариант выгрузки журнала (Cloudwatch на AWS), который избавит вас от необходимости настраивать rsyslog