Bij het uitvoeren van applicaties met Docker is een van de belangrijke dingen die we moeten weten, hoe we containerlogs kunnen bekijken. Deze logs zijn erg nuttig om te controleren of de applicatie normaal draait, of er fouten zijn, of dat de service in de container succesvol actief is.
In dit voorbeeld gebruiken we geen specifieke containernaam. Gebruik dus een algemene indeling zoals:
naam-container
Of als je het gemakkelijker wilt begrijpen, stel dat de containernaam is:
naam-project
Later vervang je naam-project door de naam van je eigen Docker-container.
Om de naam van actieve containers te controleren, gebruik je:
docker ps
Kijk naar het gedeelte NAMES. Dat is de containernaam die je kunt gebruiken voor de docker logs-opdracht.
1. Containerlogs bekijken
Om de logs van een container te bekijken, gebruik je de opdracht:
docker logs naam-project
Vervang naam-project door de naam van je container.
Voorbeeld van algemene indeling:
docker logs naam-container
Deze opdracht toont de geregistreerde logs van de container. Deze logs bevatten meestal informatie zoals het opstartproces van de applicatie, fouten, waarschuwingen of berichten dat de server actief is.
2. Logs live bekijken
Als je logs in realtime of continu wilt bekijken, gebruik dan de toevoeging -f.
docker logs -f naam-project
De optie -f staat voor follow. De terminal blijft dus de nieuwste logs weergeven zolang de container actief is.
Dit is erg handig tijdens het debuggen. Bijvoorbeeld na een herstart van de container, het updaten van de applicatie, of om te zien of er nieuwe fouten optreden wanneer de website wordt bezocht.
Om de live modus te verlaten, druk je op:
CTRL + C
Dit stopt alleen de weergave van logs in de terminal, niet de container.
3. Alleen de laatste logs bekijken
Soms zijn containerlogs te lang, vooral als de applicatie al lang draait. Als je alleen de laatste paar regels wilt zien, gebruik dan --tail.
docker logs --tail=100 naam-project
Bovenstaande opdracht toont de laatste 100 regels van de containerlogs.
Voor de laatste 50 regels:
docker logs --tail=50 naam-project
Als je de laatste logs wilt zien terwijl je nieuwe logs blijft volgen, kun je --tail en -f combineren.
docker logs --tail=100 -f naam-project
Met deze opdracht toont Docker de laatste 100 regels en blijft het vervolgens live nieuwe logs weergeven.
4. Logs bekijken op basis van tijd
Docker kan ook logs weergeven op basis van een bepaalde tijd. Bijvoorbeeld alleen logs van de laatste 10 minuten:
docker logs --since=10m naam-project
Of van het laatste uur:
docker logs --since=1h naam-project
Om logs tot een bepaalde tijd te bekijken, gebruik je:
docker logs --until=10m naam-project
Deze functie is handig als je je wilt concentreren op fouten die net zijn opgetreden, zonder de logs vanaf het begin te lezen.
5. In de container gaan
Naast het bekijken van logs van buitenaf, moet je soms ook de container in om bestanden, mappen te controleren of specifieke opdrachten uit te voeren.
Gebruik de opdracht:
docker exec -it naam-project sh
Meestal gebruiken lichtgewicht Linux-gebaseerde containers sh.
Als je Docker-image bash ondersteunt, kun je ook gebruiken:
docker exec -it naam-project bash
Eenmaal in de container kun je de huidige map controleren met:
pwd
En de lijst met bestanden en mappen bekijken:
ls
Voor meer details:
ls -la
6. Applicatie vanuit de container controleren
Nadat je de container bent ingegaan, kun je controleren of de applicatie draait door localhost te benaderen op de poort die de applicatie gebruikt.
Algemene indeling:
wget -qO- http://localhost:POORT
Vervang POORT door de interne poort van de applicatie in de container.
Voorbeeld:
wget -qO- http://localhost:8080
Of als curl beschikbaar is in de container, gebruik dan:
curl http://localhost:POORT
Voorbeeld:
curl http://localhost:8080
Als de applicatie normaal draait, krijg je meestal een response zoals HTML, JSON of een bepaalde tekst van de applicatie.
7. Applicatie vanaf VPS of host controleren
Naast vanuit de container kun je de applicatie ook direct vanaf de VPS of hostserver controleren.
Algemene indeling:
curl http://localhost:POORT
Vervang POORT door de poort die geopend is op de VPS of de Docker-poortmapping.
Voorbeeld:
curl http://localhost:8080
Als je Docker gebruikt, zorg er dan voor dat de containerpoort is gemapt naar de hostpoort. Dit kun je controleren met:
docker ps
Dan zie je het gedeelte PORTS, bijvoorbeeld:
0.0.0.0:8080->8080/tcp
Dat betekent dat poort 8080 op de VPS is doorgestuurd naar poort 8080 in de container.
8. Containernaam controleren
Als je niet zeker weet wat de containernaam is, voer dan uit:
docker ps
Deze opdracht toont een lijst met actieve containers.
Om alle containers te zien, inclusief gestopte:
docker ps -a
Je kunt dan het gedeelte NAMES bekijken en die naam gebruiken voor de docker logs-opdracht.
Voorbeeld:
docker logs naam-container
9. Voorbeeld van een eenvoudige debug-workflow
Meestal, als een Docker-applicatie problemen heeft, begin je met het controleren van de container.
Controleer eerst of de container nog draait:
docker ps
Bekijk dan de laatste logs:
docker logs --tail=100 naam-project
Voor realtime monitoring:
docker logs -f naam-project
Als je de container in moet:
docker exec -it naam-project sh
Controleer daarna de applicatiemap:
pwd
ls -la
Controleer of de applicatie reageert op de interne poort:
wget -qO- http://localhost:POORT
Of:
curl http://localhost:POORT
Conclusie
Om Docker-containerlogs te bekijken, is de meest basale opdracht:
docker logs naam-project
Voor live logs:
docker logs -f naam-project
Voor alleen de laatste logs:
docker logs --tail=100 naam-project
En om de container in te gaan:
docker exec -it naam-project sh
Met deze eenvoudige opdrachten kun je de status van de applicatie in Docker controleren, fouten zoeken, processen bekijken en ervoor zorgen dat de service in de container actief is.
Geschreven door
Wilan
Vaste bijdrager van Bali Island Tekno die actief kennis deelt over technologie, programmeren en de wereld van software-engineering.