Les Dockerfiles &
Images Sur Mesure
Automatiser la fabrication des images de conteneurs de l'infrastructure à plus de 12 VM.
420-5A4-MT · Module 3 · Projet Haute-DisponibilitéPourquoi écrire ses propres Dockerfiles ?
Les images officielles du Docker Hub sont un point de départ. Mais pour la production de l'infrastructure à plus de 12 VM, vos services nécessitent une configuration sur mesure, pré-embarquée et reproductible à l'identique.
- Reproductibilité absolue : Une recette écrite en code qui produit exactement la même image sur la machine de dev, de test et de prod.
- Immuabilité : Plus de modifications manuelles en SSH sur le serveur : tout changement passe par le Dockerfile.
- Agnosticisme : L'image construite s'exécute sur n'importe quel hôte Linux avec le même comportement.
🖼️ Anatomie d'un Dockerfile
CMD vs ENTRYPOINT
Spécifie les arguments par défaut. Si l'utilisateur passe une commande lors du docker run, elle remplace complètement le CMD.
Définit le binaire principal de l'exécutable du conteneur. Les arguments du docker run sont ajoutés à la suite de l'ENTRYPOINT.
Optimisation des Calques (Layers & Cache)
- Ordre des instructions : Placez les instructions qui changent rarement (
RUN apt-get update...) en haut, et le code applicatif qui change souvent (COPY . /app) en bas. - Chaining des commandes : Regroupez les commandes dans un seul
RUNavec&&pour éviter de créer des sous-images inutiles. - Nettoyage du cache : Supprimez les fichiers temporaires dans le même
RUN(ex:apt-get clean && rm -rf /var/lib/apt/lists/*). - Fichier .dockerignore : Excluez
.git,node_modulesou les logs pour accélérer lebuild.
Technique du Montage : Clones & Headless
Pour faire tourner plus de 12 VM sur un poste étudiant sans épuiser la RAM :
Une seule VM Master minimale de 500 Mo. Chaque clone ne pèse que quelques Mo de différentiel.
Lancer les VM sans interface graphique GUI (VBoxManage startvm "VM1" --type headless) pour économiser la mémoire de la carte vidéo.
Avant d'orchestrer le cluster
Chaque service personnalisé de votre infrastructure de plus de 12 VM possède son Dockerfile testé et son image enregistrée. La semaine 13 portera sur le hardening et la comparaison des orchestrateurs (Docker vs Kubernetes).