2016-12-19 3 views
10

Как получить доступ к Журналу событий Windows контейнера Microsoft Docker от хоста?Как получить доступ к журналу событий Windows контейнера Docker

У меня есть Docker контейнер под управлением Windows Server 2016.

Контейнер основан на изображение: Microsoft/Iis

я могу получить IP-адрес контейнера с:

docker inspect -f "{{ .NetworkSettings.Networks.nat.IPAddress }}" my-running-site 

Как подключиться к нему через средство просмотра событий на хосте Windows?

+0

хорошо вопрос! конечно, вы можете включить в свой контейнер и использовать 'get-eventlog', как и ожидалось, но подключение с хоста к контейнеру означает, что контейнер прослушивает внешний запрос для журнала событий. Если вы проверите свой контейнер для прослушивания портов, прослушивается только порт 135 (RPC), который МОЖЕТ быть правильным. Следующий шаг заключается в том, что этот порт выходит наружу с помощью 'docker run -p 135: 135 ...', но во время моей попытки это не сработало ... как насчет публикации этого вопроса на форумах докеров или контейнеров или GitHub? –

+0

Я не уверен, что журнал событий - это способ войти в журнал внутри контейнеров. Хотя это традиционный инструмент в окнах, легкий характер контейнеров делает перенаправление на stdout и stderr лучшими кандидатами для регистрации в контейнерах. Это дает дополнительные преимущества, такие как делегирование анализа журналов на такие инструменты, как logstash и elasticsearch. Затем проще запросить несколько контейнеров и сохранить журналы в централизованном порядке. Также перенаправление на stdout и stderr позволяет легко запускать журналы докеров ... из командной строки вашего хоста, чтобы легко получить журналы. –

+0

Я не могу всегда контролировать то, что регистрируется на месте. Если я открою порт 135, я получаю «Access Denied (5)». –

ответ

2

Docker Engine регистрируется в журнале событий приложения Windows, а не в файле. Эти журналы можно легко читать, сортировать и фильтровать с помощью Windows PowerShell

Например, это покажет журналы Docker Engine за последние 5 минут, начиная с самого старого.

Get-EventLog -LogName Application -Source Docker -After (Get-Date).AddMinutes(-5) | Sort-Object Time 
Смежные вопросы