Как очистить логи в докере
Я начал пытаться использовать докер-контейнеры.
После нескольких недель использования я понял, что все сообщения журнала, начиная с начала контейнера, все еще там. Если старые журналы больше не нужны, есть ли способ очистить или удалить журналы этих контейнеров?
Команда для доступа к журналам docker logs CONTAINERID
Есть ли способ очистить логи
2 ответа
В настоящее время Docker не имеет возможности очистить старые журналы контейнера. Была поднята проблема с добавлением этой функции, но она была отклонена.
В это время вы должны сделать это вручную.
Журнал контейнера был на /var/lib/docker/containers/container-id/container-id-json.log
Вы можете удалить его, чтобы очистить журнал контейнера:
$ docker logs flask
172.17.42.1 - - [20/Nov/2014 03:07:20] "GET / HTTP/1.1" 200 -
172.17.42.1 - - [20/Nov/2014 03:07:20] "GET /static/public/css/common.css?37db3944 HTTP/1.1" 304 -
172.17.42.1 - - [20/Nov/2014 03:07:20] "GET /static/public/images/Character-2x.png HTTP/1.1" 304 -
172.17.42.1 - - [20/Nov/2014 03:07:20] "GET /static/public/images/linkedin.png HTTP/1.1" 304 -
172.17.42.1 - - [20/Nov/2014 03:07:20] "GET /static/public/images/facebook.png HTTP/1.1" 304 -
...
$ mv /var/lib/docker/containers/container-id/container-id-json.log{.bak,}
$ docker logs flask
<empty>
Краткий ответ: это контейнер. Ваши журналы не должны храниться внутри контейнера. Сконфигурируйте свои сервисы для входа на удаленный сервер регистрации (через syslog или syslog-ng). Есть также третьи лица, которые запускают службы ведения журналов (SumoLogic, Loggly).