Chapitre 325 min2 exercices
Images et conteneurs
Les dix commandes que tu taperas le plus. Tu vas lancer un serveur web, regarder dedans, puis tout jeter.
Une image, plusieurs conteneurs
docker run prend une image et en crée un conteneur. Si l'image n'est pas sur ta machine, Docker la télécharge d'abord. Essaie les boutons.
Lancer un conteneur
docker run -d --name web -p 8080:80 nginx:stable| Morceau | Signification |
|---|---|
-d | En arrière-plan (detached). Tu récupères la main dans le terminal. |
--name web | Un nom lisible. Sans lui, Docker en invente un (« quirky_turing »). |
-p 8080:80 | Publie un port : ta machine à gauche, le conteneur à droite. Ouvre localhost:8080, tu arrives sur le port 80 du conteneur. |
nginx:stable | L'image, puis son tag (sa version). Sans tag, c'est latest. |
Observer et entrer
docker ps # conteneurs en cours
docker ps -a # tous, y compris arrêtés
docker logs -f web # suivre les logs (Ctrl C pour sortir)
docker exec -it web sh # ouvrir un shell dans le conteneur
docker images # images présentes sur ta machinedocker exec est ton meilleur ami pour déboguer : tu es dans le conteneur, tu vois ses fichiers et ses variables. -it rend le terminal interactif.
Arrêter et supprimer
docker stop web # arrête (le conteneur existe encore)
docker start web # le relance
docker rm web # le supprime (il doit être arrêté)
docker rm -f web # arrête et supprime d'un coup
docker rmi nginx:stable # supprime l'imageUn serveur web en une ligne
- Lance nginx en arrière-plan, nommé
web, accessible surlocalhost:8080. - Ouvre la page dans ton navigateur, puis suis les logs et rafraîchis la page.
- Entre dans le conteneur et remplace la page d'accueil par
<h1>Bonjour Lantorian</h1>.
Ce que tu dois obtenir
localhost:8080 affiche Welcome to nginx!, puis ton propre titre après modification. Chaque rafraîchissement ajoute une ligne dans les logs.
Un indice
La page d'accueil de nginx est dans /usr/share/nginx/html/index.html. Dans le conteneur, un simple echo "..." > fichier suffit pour la remplacer.
Voir la solution
docker run -d --name web -p 8080:80 nginx:stable
docker logs -f web
docker exec -it web sh
echo "<h1>Bonjour Lantorian</h1>" > /usr/share/nginx/html/index.html
exitUn conteneur est jetable
- Supprime le conteneur
webde l'exercice précédent. - Recrée-le avec exactement la même commande et recharge la page.
- Qu'est devenu ton titre ? Pourquoi ? Supprime le conteneur une fois la réponse trouvée.
Ce que tu dois obtenir
La page affiche de nouveau Welcome to nginx!. Ta modification a disparu avec l'ancien conteneur : ce qui est écrit dans un conteneur ne survit pas à sa suppression. Le chapitre 5 règle ce problème avec les volumes.
Voir la solution
docker rm -f web
docker run -d --name web -p 8080:80 nginx:stable
docker rm -f web