Как очистить логи в докере

Я начал пытаться использовать докер-контейнеры.

После нескольких недель использования я понял, что все сообщения журнала, начиная с начала контейнера, все еще там. Если старые журналы больше не нужны, есть ли способ очистить или удалить журналы этих контейнеров?

Команда для доступа к журналам 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).

Другие вопросы по тегам