Optimiser Ubuntu 24.04 LTS pour un Serveur Docker

Optimiser Ubuntu 24.04 LTS pour un Serveur Docker
Photo by Bernd 📷 Dittrich / Unsplash

Ce guide s'adresse à tout les homelabbers qui font tourner de nombreuses "stacks" (Mastodon, Nextcloud, Bases de données) et qui souhaitent garantir la longévité de leur matériel et la fluidité de leurs services avec ce type de conf :

Portainer

Vérification de la base

Avant de commencer, assurez-vous d'être sur une version stable et moderne.

  • Vérifier sa version : lsb_release -a
  • Vérifier son noyau : uname -r
Note : Pour Docker, un noyau récent (6.8+) est recommandé pour une meilleure gestion des ressources.

Optimisation du Système de Fichiers (fstab)

Par défaut, Linux enregistre la date de dernier accès à chaque lecture de fichier. Avec des dizaines de conteneurs, cela génère des milliers d'écritures inutiles.

Action : Passer en mode noatime.

  1. Éditez votre fichier de montage : sudo nano /etc/fstab
  2. Sur la ligne de votre partition racine (/), remplacez defaults par defaults,noatime.
  3. Appliquez à chaud : sudo mount -o remount /

Résultat : Moins de latence disque (I/O Wait) et moins d'usure pour votre SSD.

Configuration Avancée du Démon Docker

Docker fonctionne très bien "out of the box", mais pour 40 conteneurs, il faut l'encadrer.

Action : Créez ou modifiez /etc/docker/daemon.json :

{
  "live-restore": true,
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "50m",
    "max-file": "3"
  },
  "default-ulimits": {
    "nofile": { "Name": "nofile", "Hard": 65536, "Soft": 65536 }
  }
}
  • Live-restore : Vos conteneurs restent allumés même si vous redémarrez Docker.
  • Log-opts : Empêche les logs de remplir votre disque (limite à 3 fichiers de 50 Mo par conteneur).
  • Ulimits : Autorise plus de fichiers ouverts simultanément (crucial pour les bases de données).

Gestion Intelligente de la RAM (Swappiness)

Si vous avez beaucoup de RAM (ex: 32 Go), vous ne voulez pas que le système utilise le disque (Swap) trop tôt.

Action :

  1. Vérifiez la valeur actuelle : cat /proc/sys/vm/swappiness (souvent 60).
  2. Passez-la à 10 pour privilégier la RAM : sudo sysctl vm.swappiness=10.
  3. Rendez-le permanent en ajoutant vm.swappiness=10 dans /etc/sysctl.conf.

Maintenance et Santé Matérielle

Un serveur optimisé est un serveur surveillé.

  • Santé du SSD : Installez smartmontools et surveillez régulièrement le Percentage Used et la température avec smartctl -a /dev/nvme0n1. Une température de contrôleur au-delà de 80°C doit vous alerter sur le besoin d'un meilleur flux d'air.

Nettoyage régulier :

docker system prune -a  # Supprime images et réseaux inutilisés
docker volume prune     # Supprime les volumes orphelins

Conclusion

En appliquant ces réglages, vous transformez une installation standard en un serveur de production domestique robuste.

Vous réduisez l'usure de vos composants tout en augmentant la réactivité de vos applications.

Astuce Sécurité : Après chaque modification majeure du fstab, testez toujours votre configuration avec sudo findmnt --verify avant de redémarrer !