> **Samenvatting in 3 zinnen** > > * De consolelogs van Docker-containers worden als **bestanden op de schijf van de host opgeslagen, niet in het systeemgeheugen**. > * Het commando `docker logs` leest deze opgeslagen bestanden en toont ze. > * Om te voorkomen dat logbestanden oneindig groot worden, is het cruciaal om **logrotatie-opties (`max-size`, `max-file`) in te stellen**. ## 1\. Waar en hoe worden logs opgeslagen? \{\#sec\-37c2a29cff35\} {#sec-39b46974ccc0} [[Docker]] vangt zowel de standaard uitvoer (stdout) als de standaard fout (stderr) stromen van containers op en verwerkt deze via een **Logging Driver**. Als er geen specifieke instellingen zijn geconfigureerd, gebruikt Docker standaard de `json-file` logging driver. * **Opslaglocatie**: De logs van containers worden opgeslagen als JSON-bestanden op een specifieke locatie op het hostsysteem. De paden zijn doorgaans als volgt: * `/var/lib/docker/containers/[컨테이너_ID]/[컨테이너_ID]-json.log` * **Het commando `docker logs`**: Dit commando toont niet de inhoud die in het geheugen aanwezig is, maar leest de bovengenoemde JSON-logbestanden en geeft deze weer in de terminal. ![ChatGPT Afbeelding 12 mei 2026 12:37:29.png](/media/whitedec/blog_img/ff3498a786c645ecb031d714a053d4a4.webp) ## 2\. Raakt de schijfruimte niet op als logs blijven accumuleren? \{\#sec\-4e6257ec2aba\} {#sec-55d25bcca350} Ja, dat klopt. Als er geen maatregelen worden genomen, kunnen logbestanden blijven groeien en uiteindelijk de gehele schijfruimte van de host in beslag nemen. Om dit te voorkomen, biedt Docker **logrotatie (Log Rotation)** opties om de grootte en het aantal logbestanden te beperken. U kunt bijvoorbeeld de volgende opties toevoegen wanneer u het commando `docker run` uitvoert: ``` docker run -d \ --log-driver json-file \ --log-opt max-size=10m \ --log-opt max-file=3 \ nginx ``` * `--log-opt max-size=10m`: Beperkt de maximale grootte van één logbestand tot **10MB**. * `--log-opt max-file=3`: Beperkt het maximale aantal logbestanden tot **3**. Als er meer dan 3 bestanden zijn, wordt het oudste bestand verwijderd. Met deze instelling zullen de logs van die specifieke container maximaal 30MB (10MB \* 3 bestanden) aan schijfruimte in beslag nemen. *** ## 3\. Instellen in het `docker-compose.yml` bestand {#sec-890442ea3ac0} In Docker Compose kunt u de logging-opties eenvoudig per service instellen binnen het `docker-compose.yml` bestand. U kunt het zien als de `--log-opt` vlag van het `docker run` commando, maar dan in YAML-formaat. Hieronder vindt u een voorbeeld van het toepassen van logrotatie op een service genaamd `my-app`. ``` services: my-app: image: your-app-image # ... andere instellingen ... deploy: resources: limits: memory: 512M # 👇 Dit gedeelte is voor de loginstellingen. logging: driver: "json-file" # De te gebruiken logging driver (kan worden weggelaten, want dit is de standaardwaarde) options: max-size: "10m" # Maximale grootte per bestand: 10MB max-file: "3" # Maximaal aantal bestanden: 3 ``` * **`logging`**: Dit is de sleutel die de logging-instellingen voor de betreffende service initieert. * **`driver`**: Specificeert de te gebruiken logging driver. `json-file` is de standaardwaarde. * **`options`**: Configureert de opties die aan de driver moeten worden doorgegeven. * **`max-size`**: Identiek aan `--log-opt max-size` van `docker run`. * **`max-file`**: Identiek aan `--log-opt max-file` van `docker run`. Wanneer u deze service nu start met `docker-compose up`, zullen de logs van de `my-app` container automatisch roteren en maximaal 30MB (10MB \* 3 bestanden) aan schijfruimte in beslag nemen. ## 4\. Standaardinstellingen toepassen op alle containers \{\#sec\-1a0729e53c34\} {#sec-d22946073407} Als u het te omslachtig vindt om elke container afzonderlijk te configureren en u een standaardbeleid voor het hele systeem wilt toepassen, dan is het aanpassen van het **Docker Daemon-configuratiebestand** de beste methode. 1. Open of maak het bestand `/etc/docker/daemon.json`. (Als het bestand niet bestaat, maak het dan aan.) 2. Voeg de volgende inhoud toe: ```json { "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } } ``` 3. Herstart de Docker-daemon. ```bash sudo systemctl restart docker ``` Met deze configuratie zullen **alle toekomstig gemaakte containers** automatisch dit beleid volgen, tenzij er specifieke logging-instellingen zijn gedefinieerd. Uiteraard geldt dat als u afwijkende logging-opties specificeert voor een bepaalde container via het `docker-compose.yml` bestand of het `docker run` commando, deze **individuele instellingen voorrang hebben boven de daemon-instellingen**. * **Individuele service-instellingen**: Configuratie in de `logging`-sectie binnen het `docker-compose.yml` bestand is de meest gebruikelijke en handige manier. * **Globale standaardinstellingen**: Om een uniform beleid toe te passen op alle containers van de server, wijzigt u het bestand `/etc/docker/daemon.json`.