LANTORIANDocker, pas à pas

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.

Une image, 1 conteneur. L'image reste intacte. Chaque conteneur est une copie vivante, isolée et jetable.

Lancer un conteneur

Terminal
docker run -d --name web -p 8080:80 nginx:stable
MorceauSignification
-dEn arrière-plan (detached). Tu récupères la main dans le terminal.
--name webUn nom lisible. Sans lui, Docker en invente un (« quirky_turing »).
-p 8080:80Publie un port : ta machine à gauche, le conteneur à droite. Ouvre localhost:8080, tu arrives sur le port 80 du conteneur.
nginx:stableL'image, puis son tag (sa version). Sans tag, c'est latest.

Observer et entrer

Terminal
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 machine

docker 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

Terminal
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'image
Exercice

Un serveur web en une ligne

  1. Lance nginx en arrière-plan, nommé web, accessible sur localhost:8080.
  2. Ouvre la page dans ton navigateur, puis suis les logs et rafraîchis la page.
  3. 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
Terminal
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
exit
Exercice

Un conteneur est jetable

  1. Supprime le conteneur web de l'exercice précédent.
  2. Recrée-le avec exactement la même commande et recharge la page.
  3. 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
Terminal
docker rm -f web
docker run -d --name web -p 8080:80 nginx:stable
docker rm -f web
Échap