Команда «logs» поддерживается только для драйверов ведения журналов «json-file» и «journald» (есть: gcplogs) - PullRequest
0 голосов
/ 07 июня 2018

Я создал экземпляр облачных вычислений Google, используя изображение докера

gcloud beta compute instances create-with-container serverName \
     --container-image gcr.io/myProject/myContainer

Решил подключиться к ssh к этому контейнеру: Сначала я вошел в этот экземпляр вычисления с помощью ssh

gcloud compute --project myProject ssh serverName

Затем внутризапускаю вычислительный экземпляр:

docker exec -it e3e840a8347c  /bin/bash

Я получаю

Error response from daemon: Container e3e840a8347c is restarting, wait until the container is running

Что ж, мне нужно посмотреть журналы, чтобы отладить причину перезапуска:

docker logs e3e840a8347c

иЯ получаю:

"logs" command is supported only for "json-file" and "journald" logging drivers (got: gcplogs)

Как посмотреть логи?А может быть, другие посоветуют, как отлаживать перезапуск контейнера.

Ответы [ 3 ]

0 голосов
/ 13 июня 2018

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

Например, если вы настраиваете Docker для входа в системуСистемный журнал, вы можете просматривать журналы, где бы вы ни записывали записи системного журнала.

В случае драйвера gcplogs вы можете получить доступ к журналам через интерфейс средства просмотра журналов консоли облачной платформы Google, когда вывойдите в Google Cloud через веб-браузер.

0 голосов
/ 17 июня 2018
gcloud beta logging read projects/my-project-name/logs/gcplogs-docker-driver | grep data

показал мне необходимые логи от докера gcplogs

И вот как я взял projects/my-project-name/logs/gcplogs-docker-driver имя:

gcloud logging logs list

Показывает список всех возможныхимена журналов.

0 голосов
/ 12 июня 2018

Согласно документации, касающейся docker logs, если драйвер ведения журнала не указан в вашей команде docker run, то docker автоматически прибегнет к файлам json или journald, как указано в этой последней ошибке.

Не беспокойтесь, потому что докерская документация также содержит информацию о том, как заставить gcplogs работать с вашим контейнером .Если вы хотите сделать gcplogs службой ведения журналов по умолчанию для всех ваших контейнеров, найдите файл daemon.json для докера и установите для ключей log-driver и log-opt все, что вам нужно, и перезапустите докер.Если вы не хотите изменять службу ведения журналов по умолчанию, убедитесь, что в вашей команде docker run указан флаг --log-driver=gcplogs.

Что касается отладочной части, если ваши контейнеры перезапускаются, то либо выпрошел флаг -r или --restart (маловероятно) или тот, который связан с сервисом, который вы пытаетесь контейнировать, который работает неправильно.Лучший совет - набрать docker logs на контейнере, посмотреть, что идет не так, а затем попробовать поискать в интернете, чтобы это исправить.Вы также можете использовать docker inspect containerID/Name, если вам нужно увидеть настройки контейнера.

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