La priorité consiste à réduire l’exposition et les privilèges, puis à rendre le comportement reproductible et observable.
Exposition et privilèges
1. Publier tous les ports sur toutes les interfaces
Quand seul le reverse proxy local doit joindre le service, liez le port à 127.0.0.1 plutôt qu’à toutes les interfaces.
2. Utiliser privileged: true
Ce mode élargit fortement les droits du conteneur. Préférez des capacités précises, retirez celles qui sont inutiles et activez no-new-privileges.
3. Monter le socket Docker
L’accès à /var/run/docker.sock permet généralement un contrôle très important de l’hôte. Évitez-le ou interposez un mécanisme strictement limité.
Secrets et données
4. Écrire un secret directement dans Compose
Un mot de passe commité reste dans l’historique. Utilisez un fichier d’environnement protégé ou un gestionnaire de secrets adapté.
5. Monter un répertoire hôte trop large
Préférez un chemin explicite et le mode lecture seule lorsque l’écriture n’est pas nécessaire.
Fiabilité
6. Utiliser uniquement latest
Un redéploiement peut alors récupérer un contenu différent. Figez une version et planifiez les mises à jour.
7. Confondre démarrage et disponibilité
depends_on ne prouve pas toujours que l’application est prête. Ajoutez un contrôle de santé pertinent et une stratégie de reprise.
8. Oublier les limites
Une fuite mémoire ou une boucle peut affecter les autres services. Définissez des limites cohérentes avec les mesures de charge.
9. Laisser tourner en root
Combinez un utilisateur non privilégié dans l’image, un système de fichiers en lecture seule et un répertoire temporaire limité.
10. Ne pas organiser les journaux
Limitez la taille et la rotation pour éviter de saturer le disque tout en conservant assez d’historique pour diagnostiquer.
Vérifier votre projet
ConfigCheck analyse Compose et les Dockerfiles associés sans exécuter d’image.
Analyser mon projetVoir aussi la page valider un fichier Docker Compose et la référence officielle du format Compose.
Publié le 19 juillet 2026.