📝 Sommaire Introduction Qu’est-ce qu’un framework ? Pourquoi le choix du framework est-il stratégique ? Les critères essentiels de choix …
TechnologyQuestions d'entretien Docker - Guide Professionnel avec Explications et Illustrations 1. Qu'est-ce que Docker ? Docker est une plateforme open source permettant de développer, expédier et exécuter des applications dans …
Donald
25 Avril 2025
Docker est une plateforme open source permettant de développer, expédier et exécuter des applications dans des conteneurs. Un conteneur est une unité standardisée de logiciel contenant tout le nécessaire pour exécuter une application : code, bibliothèques, dépendances et configurations.
| Caractéristique | Conteneur Docker | Machine Virtuelle |
|---|---|---|
| Système d'exploitation | Partage le noyau de l'hôte | OS complet pour chaque VM |
| Légèreté | Très léger | Plus lourd |
| Démarrage | Très rapide (secondes) | Lent (minutes) |
| Isolation | Moins forte | Forte |
3. Quel est le cycle de vie d'un conteneur Docker ?
Create - Création d'un conteneur à partir d'une image
Start - Lancement du conteneur
Run - Exécution du processus principal
Pause/Unpause - Mise en pause / Reprise
Stop - Arrêt grâce à un signal
Kill - Arrêt forcé
Remove - Suppression du conteneur
Docker Client : Interface CLI pour interagir avec Docker
Docker Daemon : Service exécutant en arrière-plan
Docker Images : Modèle à partir duquel un conteneur est créé
Docker Containers : Instances des images
Docker Registry : Stocke les images (ex: Docker Hub)
Dockerfile : Script de construction d'une image
COPY et ADD ?COPY : Copie uniquement des fichiers/dossiers locaux dans l'image
ADD : Fait tout ce que COPY fait + capable de décompresser automatiquement les archives .tar, et prendre des fichiers distants via URL
Recommandation : Utilisez COPY sauf si vous avez besoin de fonctionnalités spécifiques de ADD.
CMD et ENTRYPOINTCMD : Spécifie la commande par défaut, mais peut être écrasée
ENTRYPOINT : Spécifie la commande principale, difficilement écrasable
Exemple :
ENTRYPOINT ["python"]
CMD ["app.py"]
=> Cela exécutera : python app.py
bridge (par défaut)
host
none
overlay (Swarm)
macvlan
Créer un réseau personnalisé avec docker network create
Assigner chaque conteneur à un réseau différent
docker network create monreseau
docker run -d --name conteneur1 --network=monreseau nginx
C'est une technique permettant de séparer les phases de build et d'exécution pour produire une image finale légère.
Exemple :
FROM node:18 AS build
WORKDIR /app
COPY . .
RUN npm install && npm run build
FROM nginx:alpine
COPY --from=build /app/dist /usr/share/nginx/html
Ce sont des images dépourvues de système d'exploitation complet (pas de shell, pas de gestionnaire de paquets). Elles n'incluent que les dépendances essentielles pour exécuter l'application, rendant l'image plus sûre et plus légère.
Point de défaillance unique : Docker Daemon est un processus unique, sa panne arrête toutes les applications.
Exécution en tant que root : Problème de sécurité si compromis.
Problèmes de ressources : Si trop de conteneurs tournent sur une petite machine.
Utiliser des images distroless ou optimisées
Configurer réseaux personnalisés pour isoler les conteneurs
Scanner les images avec des outils comme snyk, trivy
Appliquer le principe du moindre privilège
Signer et vérifier les images (Content Trust)
Docker est un outil puissant pour la conteneurisation, mais sa maîtrise nécessite une compréhension approfondie de ses composants, de sa sécurité et des meilleures pratiques. Bien que flexible et efficace, il présente aussi des défis en production qui doivent être anticipés et gérés correctement.
Aucun commentaire pour le moment. Soyez le premier à commenter !
📝 Sommaire Introduction Qu’est-ce qu’un framework ? Pourquoi le choix du framework est-il stratégique ? Les critères essentiels de choix …
Technology
Née du rêve d’un étudiant passionné par la technologie et l’impact social, HooYia Co. Ltd s’impose aujourd’hui comme une référence …
Industry News and Trends
Comment choisir LA bonne base de données sans se tromper ? 🕐 5 minutes de lecture pour éviter 5 mois …
Technical Tutorials and How-Tos
Comment créer un agent vocal automatisé qui rappelle les rendez-vous de vos clients (et en faire un business rentable) Dans …
Ai Agent
1. Introduction Dans le monde du développement et du déploiement d’applications, les conteneurs ont révolutionné la façon dont nous créons …
Docker
Introduction Dans l'écosystème Docker, deux techniques puissantes permettent d'améliorer significativement la sécurité et l'efficacité des containers : les multi-stage builds et les …
Docker