Dozzle

Dozzle — przeglądarkowy podgląd logów Docker w real-time. Łączy się z Docker API, streamuje logi, nic nie zapisuje, tylko wyświetla. Obraz ~7 MB, RAM <30 MB.
Tryb hub-agent: hub na jednym hoście, agenty na pozostałych. Komunikacja zabezpieczona wspólnym sekretem (DOZZLE_AUTH_SECRET). Regex w wyszukiwaniu, merged view z wielu kontenerów, grupowanie po Compose.

Dozzle_1 — widok głównyDozzle_2 — widok głównyDozzle_3 — widok główny

Konfiguracja

graph LR
    U[Przeglądarka] --> H[Dozzle Hub<br/>mini-1.lan:8048]
    H -->|socket| D1[Docker Engine<br/>mini-1]
    H -->|TCP 7007| A1[Dozzle Agent<br/>nas-1.lan]
    H -->|TCP 7007| A2[Dozzle Agent<br/>mini-2.lan]
    A1 -->|socket| D2[Docker Engine<br/>nas-1]
    A2 -->|socket| D3[Docker Engine<br/>mini-2]

Hub — mini-1.lan

services:
  dozzle:
    image: amir20/dozzle:latest
    container_name: dozzle
    restart: unless-stopped
    ports: [8048:8080]
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      DOZZLE_REMOTE_AGENT: "nas-1.lan:7007,mini-2.lan:7007"
      DOZZLE_AUTH_SECRET: tajny-klucz-wspoldzielony
    labels:
      homepage.group: Tools
      homepage.name: Dozzle
      homepage.icon: "dozzle.svg"
      homepage.href: "http://mini-1.lan:8048/"
      homepage.target: _self
      homepage.weight: -100
      com.centurylinklabs.watchtower.enable: true

DOZZLE_REMOTE_AGENT — lista agentów host:port. Labele Homepage jak w poprzednim wpisie .

Agent

Ten sam obraz, command: agent — bez UI, tylko proxy logów na porcie 7007.

# nas-1.lan/agents/docker-compose.yml
services:
  dozzle-agent:
    image: amir20/dozzle:latest
    container_name: dozzle-agent
    command: agent
    restart: unless-stopped
    ports: [7007:7007]
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      DOZZLE_HOSTNAME: nas-1.lan
      DOZZLE_AUTH_SECRET: tajny-klucz-wspoldzielony
    labels:
      com.centurylinklabs.watchtower.enable: true

DOZZLE_HOSTNAME — warto ustawić, bo domyślnie to ID kontenera.