TP1 : 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).
- Lancer des conteneurs simples (hello-world, Nginx).
Rendu attendu
- 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.).
Questions d'ouverture
-
Quelles expériences avez-vous déjà eues avec Docker ou d’autres technologies de conteneurisation (LXC, Podman, etc.) ?
-
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 ?
-
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 ?
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.
Mise en pratique
Découverte de Docker
- Installation / Accès :
-
Vérifiez que Docker est installé (
docker version). -
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, 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).
Questions
- 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 !