Получение вывода журнала Docker в файлы на Mac и Linux - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть набор контейнеров, организованных через docker compose. Некоторые из контейнеров записывают в файл журнала внутри контейнера, и я использую тома, чтобы сделать их доступными на хосте. Однако некоторые контейнеры регистрируются только через stdout / stderr. У меня проблема в том, что я не могу понять, как перенести эту информацию в обычный файл на хосте. Похоже, Docker в Linux не записывает журналы в файлы способом, доступным для хоста.

Мои конечные цели:

  • Журналы каждого контейнера должны быть доступны в виде файла на хосте (для filebeat).

    иметь одинаковые настройки для Mac и Linux.

1 Ответ

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

Вы можете получить журналы контейнеров, направленные в stdout / stderr, с помощью команды docker logs.

Будьте внимательны, журналы Docker просто читают файл .json, который находится в вашей установке Docker, например:

/var/lib/docker/containers/<your container hash>/*.json

Этот файл будет удален, если вы заново создадите свой контейнер, и путь к нему не будет одинаковым, хеш-код будет отличаться для каждого нового контейнера.

Если вы хотите сохранить его в обычный файл, проанализированный json, вы можете просто сделать:

docker logs my-container > log.txt
...