Я только начинаю работать с Docker и Richt и пытаюсь выяснить, как настроить мою первую докеризированную среду Apache 2 / PHP. До сих пор я использовал полноценные виртуальные машины Linux, где я использовал log-файлы, записываемые в / var / log / apache2, а затем использовал «logrotate» для перехода на новый файл каждый день.
Файлы журнала в основном использовались для немедленного обнаружения ошибок (т. Е. Войдите на сервер и используйте меньше для открытия текущих файлов access.log и error.log) и для fail2ban.
Если я прав, это невозможно в среде Docker - в основном потому, что вы обычно не можете войти в контейнеры, чтобы посмотреть журналы. Также логи будут потеряны, если контейнер будет удален.
Итак: Каков наиболее распространенный метод для работы с / emulate / replace access.log / error.log в этой ситуации? Каковы общие решения для среды производства и разработки?
Мои идеи до сих пор включают использование общего ресурса NFS (медленный и может привести к конфликтам имен файлов, если не соблюдать осторожность), и logstash (не уверен, стоит ли это усилий и возможно ли это для небольших сайтов или даже для сред разработки?), Но я уверен, что умные люди придумали лучшие решения?
Не уверен, что это имеет значение, но в настоящее время я основываю свой образ Docker на php: 5.6-apache .
docker attach <container name>
это хороший способ увидеть стандартный вывод из вашего контейнера. Но, пожалуйста, имейте в виду, что если вы выполните ctrl + d или ctrl + c, это прекратит (sigkill) вашу текущую задачу. Таким образом, вы должны отсоединить его должным образом с помощью клавиши Escapectrl+p+q
. Если вы просто хотите вставить оболочку в свой контейнер, я предпочитаю использоватьexec
команду выше.