Как просмотреть выход журнала с помощью запуска docker-compose?
Когда я использую docker-compose up
, я могу видеть журналы для всех контейнеров в моем файле docker-compose.yml
.
Однако, когда я использую docker-compose run app
, я вижу только вывод консоли для app
, но ни одна из служб, от которой зависит app
. Как просмотреть выходные данные журнала для других служб?
Ответы
Ответ 1
Обновление 1 июля 2019 года
docker-compose logs <name-of-service>
Из документации:
Usage: logs [options] [SERVICE...]
Options:
--no-color Создать монохромный вывод.
-f, - -f ollow Следить за выводом журнала.
-t, --timestamps Show timestamps.
--tail = "all" Количество строк, отображаемых в конце журналов для каждого контейнера.
Просмотреть журналы докера
Вы можете запустить Docker compose в отдельном режиме и позже присоединиться к журналам всего контейнера. Завершив просмотр журналов, вы можете отсоединиться от вывода журналов , не закрывая свои службы.
- Используйте
docker-compose up -d
, чтобы запустить все службы в отдельном режиме (-d
) (вы не увидите журналы в отдельном режиме)
- Используйте
docker-compose logs -f -t
, чтобы присоединить себя к журналам всех запущенных служб, тогда как -f
означает, что вы следите за выводом журнала, а опция -t
дает вам метки времени (см. Ссылка на докер)
- Используйте
Ctrl + z
или Ctrl + c
, чтобы отсоединить себя от выхода журнала , не закрывая работающие контейнеры
Если вас интересуют журналы одного контейнера, вы можете использовать ключевое слово docker
:
- Используйте
docker logs -t -f <name-of-service>
Сохранить вывод
Чтобы сохранить вывод в файл, добавьте в команду logs следующее:
docker-compose logs -f -t >> myDockerCompose.log
Ответ 2
Если вы хотите видеть выходные журналы из всех контейнеров или служб в вашем терминале.
docker-compose logs -t -f --tail <no of lines>
Например.: Допустим, вы хотите регистрировать вывод последних 5 строк из всех служб
docker-compose logs -t -f --tail 5
Если вы хотите записать вывод из определенных контейнеров, это можно сделать следующим образом:
docker-compose logs -t -f --tail <no of lines> <containerid1> <containerid2> ...<containeridn><name-of-service1>...<name-of-service N>
Usage:
Например. скажем, у вас есть контейнер API и контейнер портала, то вы можете сделать что-то вроде ниже:
docker-compose logs -t -f --tail 5 portal api xyz
Где 5 представляет последние 5 строк из обоих журналов.
Ref: https://docs.docker.com/v17.09/engine/admin/logging/view_container_logs/
Ответ 3
- используйте команду для запуска контейнеров в отдельном режиме:
docker-compose up -d
- для просмотра контейнеров используйте:
docker ps
- просмотреть журналы для контейнера:
docker logs <containerid>