DOCKER - 10 Exercice pratique v 2
Maintenant que vous avez compris les bases, il est temps de pratiquer en lançant plusieurs conteneurs simultanément. Cet exercice consolide les concepts : configurations multiples, mappage de ports, variables d'environnement, et gestion du cycle de vie.
L'exercice : Lancez trois conteneurs différents : Nginx en tant que proxy sur le port 80, Apache (httpd) sur le port 8080, et MySQL sur son port par défaut 3306. Vous devez nommer chaque conteneur pour faciliter la gestion. Pour chaque conteneur, utilisez des noms explicites avec l'option --name, par exemple --name nginx-proxy. Notez que chaque conteneur doit écouter sur un port différent de votre machine hôte (deux conteneurs ne peuvent pas utiliser le même port hôte).
Une option importante est -e ou --env, qui définit les variables d'environnement. Pour MySQL, vous devez passer une variable d'environnement pour définir le mot de passe root. Cherchez la documentation de l'image MySQL sur Docker Hub pour connaître le nom exact de la variable. Une fois lancés, vérifie tous les conteneurs avec docker ps. Vérifie aussi les logs du conteneur MySQL avec docker logs <nom-conteneur> pour voir le mot de passe root généré.
Enfin, arrête tous les conteneurs avec docker stop <id>, puis supprime-les avec docker rm <id>. Tente de supprimer un conteneur en cours d'exécution pour voir le message d'erreur Docker (sécurité). La vidéo suivante montre la solution complète et détaillée.
En résumé
Cet exercice pratique Docker vous guide à travers le démarrage et la gestion de trois conteneurs (Nginx comme proxy, Apache et MySQL) en utilisant les commandes essentielles de Docker. Vous apprendrez à assigner des ports distincts à chaque conteneur, à transmettre des variables d'environnement lors du lancement, et à maîtriser les opérations de base pour arrêter et supprimer les conteneurs une fois l'exercice terminé.
Points clés
- Chaque conteneur doit s'exécuter sur un port distinct pour éviter les conflits : Nginx sur le port 80, Apache sur le port 8080, MySQL sur le port 3306
- Utiliser l'option --name lors du lancement des conteneurs pour faciliter leur gestion et identification
- Transmettre les variables d'environnement avec les options -e ou --env pour configurer les paramètres spécifiques à chaque image (ex: mot de passe root MySQL)
- Consulter la documentation officielle docs.docker.com pour connaître les variables d'environnement et options disponibles de chaque image
- Utiliser docker ps pour vérifier les conteneurs en cours d'exécution et docker logs pour accéder aux journaux des conteneurs
- Nettoyer l'environnement en utilisant docker stop pour arrêter les conteneurs, puis docker rm pour les supprimer définitivement
Questions fréquentes
Pourquoi chaque conteneur a-t-il besoin de son propre port ?
Deux conteneurs ne peuvent pas écouter simultanément sur le même port au sein du système hôte. Chaque conteneur doit disposer d'un port distinct pour fonctionner sans conflit. Dans cet exercice, Nginx utilise le port 80, Apache le port 8080, et MySQL le port 3306.
Comment passer des paramètres de configuration à un conteneur Docker ?
Utilisez l'option -e ou --env avec la commande docker run. Par exemple, pour MySQL, vous pouvez passer une variable d'environnement pour définir le mot de passe root ou d'autres paramètres au lancement du conteneur.
Où trouver les variables d'environnement spécifiques d'une image Docker ?
Consultez la documentation officielle sur docs.docker.com ou le dépôt GitHub de l'image concernée. Ces ressources documentent toutes les variables d'environnement disponibles, leurs valeurs par défaut, et comment les utiliser.