2016-12-19 22 views
10

Jak uzyskać dostęp do dziennika zdarzeń systemu Windows kontenera Docker firmy Microsoft z hosta?Jak uzyskać dostęp do rejestru zdarzeń systemu Windows kontenera Docker

mam pojemnik Döcker pod Windows Server 2016.

Pojemnik jest oparty na obrazie: Microsoft/iis

mogę uzyskać adres IP pojemnika z:

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

Jak mogę się z nim połączyć za pomocą przeglądarki zdarzeń na hoście windows?

+0

Dobre pytanie! oczywiście możesz wlać powłokę do kontenera i użyć 'get-eventlog' zgodnie z oczekiwaniami, ale połączenie z hosta do kontenera oznaczałoby, że kontener nasłuchuje żądania zewnętrznego dla zdarzenia. Jeśli zaznaczysz swój pojemnik dla portów nasłuchujących, będzie tylko port 135 (RPC), który MOŻE być odpowiedni. Kolejnym krokiem jest wystawienie tego portu na zewnątrz za pomocą 'docker run -p 135: 135 ...' ale w czasie mojej próby to nie zadziałało ... a co powiesz na umieszczenie tego pytania na dockingu lub na forach kontenerowych lub na GitHub? –

+0

Nie jestem pewien, czy dziennik zdarzeń jest sposobem na rejestrowanie wewnątrz kontenerów. Podczas gdy jest to tradycyjne narzędzie w systemie Windows, niewielka waga kontenerów sprawia, że ​​przekierowanie na stdout i stderr jest lepszym kandydatem do logowania do kontenerów. Ma to dodatkowe zalety, takie jak delegowanie analizy logów do narzędzi takich jak logstash i elasticsearch. Dzięki temu łatwiej jest przesyłać zapytania do wielu kontenerów i centralnie przechowywać dzienniki. Również przekierowanie do stdout i stderr pozwala na łatwe uruchamianie dzienników dokowania ... z poziomu wiersza poleceń twojego hosta, aby łatwo uzyskać logi. –

+0

Nie zawsze mogę kontrolować, co jest rejestrowane w miejscu. Jeśli otworzę port 135, otrzymam "Odmowa dostępu (5)". –

Odpowiedz

2

Silnik Docker loguje się do dziennika zdarzeń aplikacji systemu Windows, a nie do pliku. Te dzienniki można łatwo odczytywać, sortować i filtrować za pomocą narzędzia Windows PowerShell

Na przykład będzie to pokazywać dzienniki Docker Engine z ostatnich 5 minut, począwszy od najstarszych.

Get-EventLog -LogName Application -Source Docker -After (Get-Date).AddMinutes(-5) | Sort-Object Time 
Powiązane problemy