TP Fondamentaux Docker
Objectif
On va installer un serveur web dans une instance Docker.
On va donc télécharger une image Debian de base, explorer son contenu, démarrer et arrêter le conteneur, le lancer en mode daemon, installer un serveur web, et observer son fonctionnement.
Étapes
Action : Télécharger l'image Docker de base
ubuntu:24-04
Observation : L'image apparaît dans la liste des images locales via la commandedocker images
.Action : Lancer un nouveau conteneur nommé
mycontainer
en mode daemon (en arrière-plan) avec une commande d'instance Dockertail -f /dev/null
.
Observation : Le conteneur tourne en arrière-plan (docker ps
montre le conteneur en cours d'exécution).Action : Arrêter le conteneur, puis le redémarrer.
Observation : Le conteneur est arrêté (docker ps
ne le montre plus), puis redémarré (docker ps
le montre à nouveau).Action : Utiliser la commande
ps
sur la machine hôte pour vérifier le processus Docker.
Observation : Voir le processus Docker correspondant à l'instance en cours d'exécution.Action : Accéder au conteneur en cours d'exécution.
Observation : Utillisez la commandedocker exec -it ...
Action : Installer les packages
nginx
etcurl
dans le conteneur avecapt update && apt install nginx curl
.
Observation : Le serveur web s'installe correctement.Action : Démarrer le serveur Nginx dans le conteneur avec
service nginx start
.
Observation : Le serveur web fonctionne, et les logs de Nginx confirment qu'il est opérationnel.Action : Faire un appel http au serveur nginx depuis l'intérieur du conteneur avec
curl http://localhost
.
Observation : La page web par défaut de nginx apparaît.
- Action : Vérifier que les logs de nginx situés dans le dossier
/var/log/nginx
du conteneur sont bien remplis.
Observation : le fichieraccess.log
contient une entrée relative à curl.
Avancé :
- Que donne
docker logs mycontainer
? Pourquoi ? - Utiliser
docker exec
pour accéder au conteneur en arrière-plan et vérifier le statut du serveur web. - Comment accéder à la page d'accueil du serveur web depuis la machine hôte ?
- Comment modifier la page d'accueil du serveur web ? Comment le faire rapidement ? Quel sera le problème ?
- Configurer le conteneur pour redémarrer automatiquement en cas de panne (
--restart
policy).
Solution
Afficher
- Télécharger l'image :
docker pull ubuntu:24.04
- Lancer le conteneur en mode daemon :
docker run --name mycontainer -d ubuntu:24.04 tail -f /dev/null
- Arrêter le conteneur :
docker stop mycontainer
- Redémarrer le conteneur :
docker start mycontainer
- Vérifier le processus Docker sur la machine hôte :
ps aux | grep docker
- Accéder au conteneur en cours d'exécution :
docker exec -it mycontainer bash
- Installer les packages dans le conteneur :
apt-get update && apt-get install -y nginx curl procps
- Démarrer Nginx dans le conteneur :
service nginx start
- Utiliser curl pour faire un appel HTTP depuis le conteneur :
curl http://localhost
- Observer les logs dans le conteneur :
cat /var/log/nginx/access.log