Подтвердить что ты не робот

Журналы контейнеров-докеров занимают все мое дисковое пространство

Я запускаю контейнер на виртуальной машине. Мой контейнер записывает журналы по умолчанию в файл /var/lib/docker/containers/CONTAINER _ID/CONTAINER_ID-json.log, пока диск не будет заполнен.

В настоящее время я должен удалить этот файл вручную, чтобы избежать полного заполнения диска. Я прочитал, что в Docker 1.8 будет параметр повернуть журналы. Что вы рекомендуете в качестве текущего обходного пути?

4b9b3361

Ответ 1

Docker 1.8 был выпущен с возможностью поворота журнала. Добавление:

--log-opt max-size=50m 

когда контейнер запущен, делает трюк. Вы можете узнать больше: https://docs.docker.com/engine/admin/logging/overview/

Ответ 2

Внимание: этот пост относится к версиям докеров, 1.8 (которые не имеют опции --log-opt)

Почему бы вам не использовать logrotate (который также поддерживает сжатие)?

/var/lib/docker/containers/*/*-json.log {
hourly
rotate 48
compress
dateext
copytruncate
}

Настройте его либо непосредственно на вашем CoreOs Node, либо разверните контейнер (например https://github.com/tutumcloud/logrotate), который монтирует /var/lib/docker для поворота журналов.

Ответ 3

ПРЕДОСТЕРЕЖЕНИЕ: это только для версии docker-версии 2

Пример:

version: '2'
services:
  db:
    container_name: db
    image: mysql:5.7
    ports:
      - 3306:3306
    logging:
      options:
        max-size: 50m