Просмотр error.log и access.log в Apache в Docker? - PullRequest
0 голосов
/ 24 апреля 2020

My Docker имеет следующее в vhost.conf

<VirtualHost *:80>
    // ...(snipped)
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Просмотр их через docker exec в /var/log/apache, выполнение ls -l показывает:

access.log -> /dev/stdout
error.log -> /dev/stderr

Что это значит и можно ли просмотреть их содержание?

1 Ответ

1 голос
/ 24 апреля 2020

docker logs на контейнере покажет вам этот вывод журнала.

/dev/stdout и /dev/stderr - это специальные «файлы», которые фактически указывают на стандартные выходные данные и каналы ошибок текущего процесса, соответственно (они сами должны быть символическими ссылками на /proc/self/fd/1 и /proc/self/fd/2). Если что-то не заставляет их перенаправляться куда-то еще, это станет основным выводом контейнера, и это будет записано внутренней подсистемой журнала Docker.

Если вы хотите захватить их как конкретные файлы на В вашей локальной системе вы можете подключить монтирование локального каталога поверх /var/log/apache (с опцией docker run -v или Docker Compose ports:). Это приведет к тому, что (изначально пустой) каталог будет скрывать содержимое этого каталога в контейнере, и когда демон HTTP записывает свои журналы, они будут отображаться как реальные файлы в каталоге, совместно используемом с хостом.

Вам не нужно docker exec при нормальной работе.

...