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


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

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

4 51

4 ответа:

Docker 1.8 был выпущен с опцией поворота журнала. Добавление:

--log-opt max-size=50m 

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

внимание: это для docker-compose версии 2 только

пример:

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

внимание: это сообщение относится к версиям docker )

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

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

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

передать параметры журнала при запуске контейнера. Пример будет выглядеть следующим образом

sudo docker run -ti --name visruth-cv-container  --log-opt max-size=5m --log-opt max-file=10 ubuntu /bin/bash

здесь --log-opt max-size=5m задает максимальный размер файла журнала, равный 5 Мб и --log-opt max-file=10 задает максимальное количество файлов для вращения.