Как изменить местоположение сохранения журналов докер-контейнеров? - PullRequest
0 голосов
/ 20 ноября 2018

Я бы хотел записывать все сообщения стандартного вывода моих контейнеров на внешний диск, поскольку у меня только ограниченное пространство на диске 'docker'.

При использовании docker-compose v3 я сохраняю журналы в 10 МБчанки с использованием драйвера "json-file"

logging:
  driver: "json-file"
  options:
    max-size: 10m

По умолчанию полученные журналы сохраняются в /var/lib/docker/containers/<container id>/<container id>-json.log

Есть ли способ изменить это местоположение?

1 Ответ

0 голосов
/ 20 ноября 2018

Я не уверен, есть ли для этого готовое решение.

Единственное, что вы можете попробовать, это установить минимальные ограничения для вашего драйвера регистрации файлов json, но сохранить всежурналы в отдельном каталоге, например, так:

docker-compose logs -f 2>&1 | multilog t s1048576 n100 ./my_log_directory

Вы должны запустить это в фоновом режиме для записи всех журналов

Этот бит необходим для обработки всех stderr как stdin, поэтому он будет сохраненпо multilog:

2>&1

Больше информации о multilog здесь: https://serverfault.com/questions/445118/rotating-logs-generated-by-a-process-that-logs-to-stdin#445461

Хотя это может работать для ваших нужд, вы все равно потеряете некоторую информацию, предоставленную драйвером json-file

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...