Rotacja logów
Rotacja logów kontenerów Dockera
Rotacja logów ogranicza rozmiar logów kontenerów zapisywanych driverem json-file i zmniejsza ryzyko zapełnienia dysku.
Założenia konfiguracyjne:
- Docker zapisuje logi driverem
json-file - Rotacja konfigurowana jest globalnie przez
/etc/docker/daemon.json - Ustawienia w pełni dotyczą nowo tworzonych kontenerów (dla już istniejących zwykle wymagane jest odtworzenie)
Tworzenie katalogu /etc/docker
Tworzymy katalog na konfigurację Dockera (jeśli nie istnieje):
sudo mkdir -p /etc/docker
Tworzenie pliku /etc/docker/daemon.json
Tworzymy i edytujemy plik konfiguracyjny Dockera:
sudo micro /etc/docker/daemon.json
W pliku umieszczamy (JSON bez komentarzy):
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
Ustawienia oznaczają:
max-size– maksymalny rozmiar pojedynczego pliku logu (np.10m)max-file– liczba plików logu trzymanych w rotacji (np.3)
Łącznie daje to ok. 10m × 3 = 30 MB logów na kontener.
Restart usługi Docker
Restartujemy Dockera, aby zastosować konfigurację:
sudo systemctl restart docker
Weryfikacja ustawień logowania
Sprawdzamy, czy Docker używa właściwego drivera logów:
docker info --format '{{.LoggingDriver}}'
Oczekiwany wynik:
json-file
Weryfikacja konfiguracji dla kontenera
Opcjonalnie sprawdzamy ustawienia logowania dla konkretnego kontenera:
docker inspect --format '{{json .HostConfig.LogConfig}}' <container_name>
Zastosowanie do istniejących kontenerów
Ustawienia z /etc/docker/daemon.json stosują się w pełni do nowo tworzonych kontenerów.
Dla istniejących kontenerów zwykle wystarcza ich odtworzenie w stacku:
cd /srv/docker/compose/<stack>
docker compose up -d
Jeśli chcemy mieć pewność, że kontenery zostaną zrecreate’owane:
cd /srv/docker/compose/<stack>
docker compose up -d --force-recreate
Uwagi utrzymaniowe
- Rotację logów ustawiamy globalnie na hoście, aby objęła wszystkie kontenery
- Po zmianie wartości
max-size/max-filekontenery najlepiej odtworzyć w ramach stacków - W przypadku bardzo „gadatliwych” usług wartości
max-size/max-filedopasowujemy do pojemności dysku i wymagań retencji