TP 1 Les bases de Docker
Objectif du TP :
- Découvrir la notion de conteneur et la comparer à la virtualisation.
- Apprendre les bases de Docker (installation, commandes principales).
- Prendre en main quelques commandes Linux pour manipuler le système de fichiers.
- Lancer des conteneurs simples (hello-world, Nginx).
Rendu :
- Répondre aux questions écrites dans un fichier de rendu
- Captures d’écran ou extraits de commandes pour justifier vos résultats (ex.
docker ps,uname -a, etc.).
TP1 - Introduction aux conteneurs Docker
Travail de recherche préparatoire
- Qu’est-ce qu’une conteneurisation ?
- Comparez brièvement la conteneurisation (Docker, LXC) à la virtualisation (VM).
-
Quels sont les avantages de la conteneurisation ?
-
Quelles sont les principales différences entre un conteneur et une machine virtuelle ?
- Pourquoi dit-on qu’un conteneur est plus léger qu’une VM ?
-
Où se situe la couche système (kernel) dans chaque cas ?
-
Inscrivez-vous sur Play with Docker
- Ou, si vous le pouvez, installez Docker sur votre PC
- Vérifier la version de Docker (si vous êtes en local ou sur PWD) :
- Que constatez-vous ? Qu’indiquent ces commandes ?
Découverte de la ligne de commande Linux
Si vous utilisez Play with Docker ou Katacoda, vous disposerez d’un terminal en ligne.
Pour ceux qui utilisent Docker directement sur leur PC, vous pouvez lancer un conteneur Linux allégé pour faire les exercices, par exemple :
- Cette commande lance un conteneur Ubuntu interactif (-it) qui s’effacera (--rm) une fois arrêté.- Vous pourrez alors exécuter les commandes Linux ci-dessous dans cet environnement.
- Tapez :
- À quoi correspond chaque mot affiché ?
- Que signifie l’option
-a?
- Notions de base dans le système :
- root directory (
/) - home directory (
~) - parent directory (
..) - working directory (
.)
Questions :
- Définissez chaque terme et le rôle du symbole associé.
- Qui a accès à chacun de ces dossiers ?
- À quoi servent-ils ?
- Les quels sont relatifs ou absolus ?
- Commandes utiles :
pwd,cd,ls,mkdir,sudo-
Testez-les pour naviguer entre les dossiers, créer et supprimer des répertoires.
-
Exercice :
- Allez dans
/var, créez un dossierlearning, puis entrez dedans. - Notez les commandes utilisées.
Écrire dans un fichier
- Commandes à connaître :
nanoouvi(éditeur de texte)touch(crée un fichier vide)mv(renommer/déplacer)cp(copier)-
rm(supprimer) -
Exercice :
- Créez un fichier
COURT-1(sans extension) viatouchounano. - Dans ce fichier, écrivez un petit texte (par exemple un compliment sur votre intervenant).
- Enregistrez le fichier (
nano, puisCtrl+O,Ctrl+X). Ouviavec:wq. - Renommez
COURT-1enCOURS-1. - Revenez rapidement au dossier de départ (en utilisant une commande de 4 caractères max).
- Copiez le dossier
/var/learningdans un sous-dossiercoursdu dossierhome. -
Supprimez enfin le dossier
learningde/var(sans changer de dossier). -
Quelles sont les commandes que vous avez tapées ?
- Indiquez-les dans votre rendu.
Navigation et chemins relatifs
-
Recréez l’architecture suivante (via des commandes
(Vous pouvez utilisermkdirsuccessives) :mkdir -p a/b/1etc. pour la créer rapidement.) -
Chemin relatif :
- Vous êtes dans
/a/b/2. Que se passe-t-il après ?- Dans quel dossier vous retrouvez-vous ?
Variables d’environnement
- Qu’est-ce qu’une variable d’environnement ?
- Tapez :
- Que constatez-vous ?
- Exécutez :
- Refaire
printenv. Qu’est-ce qui a changé ? - À quoi sert
export? - Et la commande
unset?
Premier script bash
- Rappel : un script bash commence par
#!/bin/bashet a souvent une extension.sh. - Exercice :
- Créez un dossier
exercices, puis un fichierexercice1.shcontenant : -
Exécutez le fichier :
- Que se passe-t-il ? Pourquoi parfois ça ne marche pas directement ?
-
Modifiez les permissions :
- À quoi sert
chmod? - Que signifient les chiffres (ex.
7pour l’utilisateur,7pour le groupe,7pour les autres) ?
🧠 Focus : Comprendre Docker
Avant d'aller plus loin, prenons un instant pour comprendre ce qu'est Docker, son origine et les notions essentielles autour des conteneurs.
- Docker a été créé en 2013. Il est écrit en Go, distribué sous licence Apache 2.0 et aussi sous licence propriétaire.
- Docker était basé sur la technologie LXC (Linux Container), maintenant sur runc, qui permet d’isoler des processus via des conteneurs.
Conteneur ≠ Machine virtuelle
- Un conteneur partage le noyau (kernel) du système hôte. Il est plus léger, rapide à lancer, et consomme peu de ressources.
- Une machine virtuelle embarque un OS complet avec son propre noyau, ce qui la rend plus lourde.
Pour la culture
Le mot "docker" vient du métier de débardeur, un ouvrier qui s'occupe du chargement/déchargement de conteneurs dans un port.
L’analogie est directe : Docker manipule aussi des conteneurs.
Concepts essentiels
Dockerfile: un plan pour construire une image Docker.- Chaque ligne du Dockerfile correspond à une étape de compilation intermédiaire.
Image: équivalent d’une classe en programmation. Elle est figée, prête à être instanciée.Container: une instance d’une image. C’est ce qui tourne réellement.
Exercices
1) Échauffement
- Écrivez un script
exercice2.shqui affiche 5 mots (ex. "J'aime", "les", "cours", "d'administration", "système"), chacun sur une ligne séparée (faire des sauts de lignes). - Essayez de le faire en une ligne de script.
Indice : Vous pouvez utiliser plusieurs commandes
echoou un seulecho.
2) Tests sur des fichiers
- Écrivez un script
exercice3.shqui demande à l’utilisateur le nom d’un fichier ou d’un dossier. - Le script doit indiquer s’il s’agit d’un fichier ou d’un répertoire.
- Ensuite, il doit exécuter
ls -ldessus pour lister son contenu en mode détaillé.
Indice :
-f teste si c’est un fichier.-
-d teste si c’est un dossier.
Premiers pas avec Docker
Découverte de Docker
- Installation / Accès :
- Si vous travaillez en local, vérifiez que Docker est installé (
docker version). -
Sinon, lancez une instance sur Play with Docker.
-
Commande test :
-
Que se passe-t-il ? Quelles étapes se produisent en arrière-plan ?
-
Lister les conteneurs et images :
docker ps,docker ps -a-
docker images -
Exercice rapide :
- Lancez un conteneur Nginx sur le port 8080 :
- Ou en mode détaché :
- Ouvrez votre navigateur (ou l’URL fournie par Play with Docker), vérifiez que ça fonctionne.
- Explorez (
docker logs web,docker exec -it web bash). - Stoppez et supprimez le conteneur (
docker stop web,docker rm web).
Évaluation / Questions rapides
- Quelle est la différence entre un conteneur et une machine virtuelle ?
- À quoi sert la commande
docker run? - Quel est l’avantage principal de la conteneurisation pour le déploiement d’applications ?
Conclusion
- Vous avez découvert ou révisé les commandes Linux de base (navigation, édition, droits).
- Vous avez compris les grands principes de la conteneurisation vs la virtualisation.
- Vous avez lancé vos premiers conteneurs Docker (hello-world, nginx).
Prochaine étape : création de vos propres images (Dockerfile), gestion de volumes et réseaux, orchestrations simples, etc.
Bon courage !