À quoi ça sert ?
Dozzle affiche en temps réel les journaux (logs) de tous vos conteneurs Docker dans le navigateur, avec recherche et filtres. Très pratique pour comprendre pourquoi une application ne démarre pas.
Pour qui ?
Ceux qui en ont assez de taper docker logs dans le terminal.
Bon à savoir
Dozzle accède au socket Docker et les logs peuvent contenir des informations sensibles : protégez-le par un mot de passe (voir la documentation, section authentification) ou ne l’exposez qu’en local.
Après l'installation
- Ouvrez l’adresse du site : tous vos conteneurs apparaissent.
Le docker-compose
Exemple derrière Traefik, avec une explication sur chaque ligne. Pour l'adapter à votre cas (Nginx Proxy Manager, port local…), utilisez le générateur.
# docker-compose.yml : Dozzle
# Ce fichier décrit les « conteneurs » à lancer : chaque conteneur est une petite
# boîte isolée qui contient un programme. Lancez-le avec : docker compose up -d
services:
dozzle:
# Le programme à télécharger (l'« image »), avec sa version
image: amir20/dozzle:latest
container_name: dozzle
# Redémarre tout seul après une panne ou un redémarrage du serveur
restart: unless-stopped
# Empêche un programme piraté de devenir administrateur
security_opt:
- no-new-privileges:true
# Réglages de l'application. Les valeurs ${...} viennent du fichier .env
environment:
TZ: Europe/Paris
# Dossiers du serveur partagés avec le conteneur (dossier_serveur:dossier_conteneur).
# Vos données sont stockées ici : ce sont ces dossiers qu'il faut sauvegarder.
# Attention : l'accès au socket Docker donne le contrôle de Docker à ce conteneur.
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
# Réseau partagé avec le reverse proxy pour qu'il puisse joindre l'application
networks:
- traefik
# Indique à Traefik de publier l'application sur https://logs.mondomaine.fr avec un certificat HTTPS
labels:
- traefik.enable=true
- traefik.http.routers.dozzle.rule=Host(`logs.mondomaine.fr`)
- traefik.http.routers.dozzle.entrypoints=websecure
- traefik.http.routers.dozzle.tls.certresolver=letsencrypt
- traefik.http.services.dozzle.loadbalancer.server.port=8080
# Le réseau du reverse proxy existe déjà : on s'y raccroche
networks:
traefik:
external: true