Au fil du temps, vos conteneurs Docker génèrent de plus en plus de journaux, et les fichiers de journal peuvent rapidement consommer une quantité importante d'espace disque sur le système hôte. Pour éviter cela, vous pouvez configurer la rotation des journaux, qui consiste à archiver régulièrement et à supprimer les anciens fichiers de journal pour libérer de l'espace disque.
Comprendre la rotation des journaux
La rotation des journaux est une pratique courante en administration système, où les fichiers de journal sont périodiquement rotés, compressés et archivés pour maintenir une taille de fichier de journal gérable. Ce processus garantit que les fichiers de journal ne croissent pas indéfiniment et ne consomment pas tout l'espace disque disponible.
Pour configurer la rotation des journaux pour les conteneurs Docker, vous pouvez utiliser l'option intégrée --log-opt
lors du démarrage d'un conteneur. Cette option vous permet de spécifier les paramètres de rotation des journaux, tels que la taille maximale du fichier de journal, le nombre de fichiers de journal archivés à conserver et le format de compression.
## Start a container with log rotation configured
docker run -d --log-opt max-size=10m --log-opt max-file=5 <image_name>
Dans l'exemple ci-dessus, le conteneur est configuré pour rotater les fichiers de journal lorsqu'ils atteignent une taille maximale de 10 Mo et pour conserver un maximum de 5 fichiers de journal archivés.
Mettre en œuvre des stratégies de rotation des journaux
Bien que l'option intégrée --log-opt
soit un moyen pratique de configurer la rotation des journaux pour des conteneurs individuels, elle peut ne pas convenir pour gérer la rotation des journaux dans toute votre infrastructure Docker. Dans de tels cas, vous pouvez mettre en œuvre des stratégies automatisées de rotation des journaux à l'aide d'outils ou de scripts externes.
Une approche populaire consiste à utiliser l'utilitaire logrotate
, qui est un outil standard pour gérer la rotation des journaux sur les systèmes Linux. Vous pouvez créer un fichier de configuration logrotate
qui spécifie les règles de rotation des journaux pour vos conteneurs Docker, puis programmer la commande logrotate
pour qu'elle s'exécute périodiquement à l'aide d'une tâche cron ou d'un service système.
Voici un exemple de fichier de configuration logrotate
pour les conteneurs Docker :
/var/lib/docker/containers/*/*.log {
rotate 5
copytruncate
compress
delaycompress
missingok
notifempty
}
Ce fichier de configuration va rotater les fichiers de journal de tous les conteneurs Docker, conserver un maximum de 5 fichiers de journal archivés, compresser les fichiers archivés et supprimer les fichiers de journal s'ils sont vides.
En configurant la rotation des journaux pour vos conteneurs Docker, vous pouvez vous assurer que l'espace disque de votre système hôte est utilisé efficacement et que vos applications conteneurisées continuent de fonctionner sans problème, sans être affectées par la croissance des fichiers de journal.