Environnement de travail¶
Cette annexe décrit les machines, les logiciels, les comptes et les tests de validation dont vous avez besoin pour réaliser les travaux pratiques. Lisez-la avant la première séance et validez votre installation avec la liste de la section 6.
1. Principe : trois options au choix¶
Les labs sont rédigés pour Docker Engine sous Linux, qui sert de référence. Vous choisissez l'environnement dans lequel vous travaillez parmi trois options, classées de la plus simple à installer à la plus proche d'un serveur de production.
flowchart LR
A["Option A<br/>Docker Desktop<br/>(Windows)"] --> B["Option B<br/>Ubuntu Desktop<br/>(VM)"] --> C["Option C<br/>Ubuntu Server<br/>(VM)"]
Vous pouvez changer d'option en cours de cours
Les commandes Docker sont identiques dans les trois options. Les différences sont signalées dans les labs concernés. Une seule contrainte : le cluster Swarm (chapitres 11, 12 et 14) exige des machines virtuelles Linux (section 4).
2. Choisir son option¶
| A. Docker Desktop | B. Ubuntu Desktop (VM) | C. Ubuntu Server (VM) | |
|---|---|---|---|
| Difficulté d'installation | Faible | Moyenne | Plus élevée |
| Interface | Graphique, sous Windows | Graphique, sous Linux | Ligne de commande uniquement |
| Moteur Docker | Dans une machine virtuelle gérée par Docker Desktop | Directement sur la VM | Directement sur la VM |
| Ressources conseillées | Celles de votre poste | 2 vCPU, 4 Go de RAM, 25 Go de disque | 2 vCPU, 2 Go de RAM, 20 Go de disque |
| Proximité avec la production | Faible | Moyenne | Forte |
| Cluster Swarm | Non (voir section 4) | Oui, avec 3 VM | Oui, avec 3 VM |
| Recommandé pour | Chapitres 1 à 5 et 7 à 9 si vous débutez | Tous les labs, si vous êtes peu à l'aise en ligne de commande pure | Tous les labs, dont le réseau et le cluster |
Pour vous aider à choisir :
- Vous découvrez Linux et les conteneurs : commencez par l'option A ou B.
- Vous êtes à l'aise avec Linux en ligne de commande : choisissez l'option C, qui est aussi la plus utile pour votre futur métier.
- Quelle que soit l'option, prévoyez une VM Linux pour les chapitres 6 (réseau) et 10 (sécurité) : Docker s'y comporte comme sur un serveur réel.
3. Détail des trois options¶
Option A : Docker Desktop¶
| Rubrique | Description |
|---|---|
| Système hôte | Windows, avec WSL 2 (ou Hyper-V selon l'édition de Windows) |
| Installation | Application officielle Docker Desktop |
| Terminal | PowerShell ou le terminal de votre distribution WSL |
| Points forts | Installation rapide, pas de machine Linux à administrer |
Points d'attention
- Le moteur Docker s'exécute dans une machine virtuelle interne : les adresses IP des conteneurs ne sont pas joignables directement depuis Windows, et le mode réseau
hostne se comporte pas comme sur Linux (chapitre 6). - Docker Desktop et VMware Workstation doivent cohabiter sur le même poste : testez les deux avant la première séance (section 6).
- Les conditions de licence de Docker Desktop dépendent de l'usage : vérifiez celles qui sont en vigueur pour votre situation.
- Sous PowerShell, utilisez
curl.exeet non l'aliascurl.
Option B : Ubuntu Desktop dans une VM¶
| Rubrique | Description |
|---|---|
| Hyperviseur | VMware Workstation |
| Système invité | Ubuntu Desktop LTS |
| Ressources | 2 vCPU, 4 Go de RAM, 25 Go de disque |
| Réseau | Une carte réseau avec accès Internet |
| Installation de Docker | Lab 1.1 : Installer Docker |
L'interface graphique vous permet d'ouvrir un navigateur dans la VM pour tester vos applications web, ce qui simplifie les premiers labs.
Option C : Ubuntu Server dans une VM¶
| Rubrique | Description |
|---|---|
| Hyperviseur | VMware Workstation |
| Système invité | Ubuntu Server LTS |
| Ressources | 2 vCPU, 2 Go de RAM, 20 Go de disque |
| Réseau | Une carte réseau avec accès Internet |
| Accès | Console de la VM, ou SSH depuis votre poste |
| Installation de Docker | Lab 1.1 : Installer Docker |
Cette configuration est identique à celle des machines du cours Kubernetes : vous pourrez réutiliser vos VM d'un cours à l'autre.
Snapshot
Pour les options B et C, faites un snapshot de la VM dans VMware Workstation une fois Docker installé et validé, puis avant chaque séance. Vous pourrez ainsi revenir à un état propre en cas d'erreur.
4. Environnement du cluster Swarm¶
Les chapitres 11, 12 et 14 utilisent un cluster Docker Swarm de trois nœuds. Un vrai cluster exige trois machines distinctes : l'option A ne suffit donc pas pour ces chapitres.
flowchart LR
M["swarm-manager<br/>(manager)"] --- W1["swarm-worker1<br/>(worker)"]
M --- W2["swarm-worker2<br/>(worker)"]
| Rubrique | Description |
|---|---|
| Machines | 3 VM Ubuntu (Server ou Desktop), nommées swarm-manager, swarm-worker1 et swarm-worker2 |
| Ressources par VM | 2 vCPU, 2 Go de RAM, 20 Go de disque |
| Réseau | Les trois VM sont sur le même réseau virtuel, se joignent entre elles et accèdent à Internet |
| Nom d'hôte | Unique pour chaque VM |
| Docker | Installé et validé sur chacune des trois VM |
Les nœuds d'un cluster Swarm communiquent entre eux sur les ports suivants, qui doivent être ouverts entre les VM (ou le pare-feu désactivé pour le TP) :
| Port | Protocole | Usage |
|---|---|---|
| 2377 | TCP | Gestion du cluster (communication avec le manager) |
| 7946 | TCP et UDP | Communication entre les nœuds |
| 4789 | UDP | Trafic du réseau des services entre les nœuds |
Ressources de votre poste
Trois VM de 2 Go consomment 6 Go de RAM. Si votre poste est limité, travaillez en binôme et répartissez les VM entre vos deux machines : elles doivent seulement se joindre sur le réseau.
5. Comptes et accès à prévoir¶
| Compte ou accès | Nécessaire à partir de | Usage |
|---|---|---|
| Accès Internet depuis l'environnement de TP | Chapitre 1 | Télécharger les images depuis Docker Hub et les paquets |
| Compte Docker Hub | Chapitre 4 | Publier vos images |
| Compte GitHub | Chapitre 13 | Héberger votre code et exécuter les pipelines GitHub Actions |
Créez ces comptes avant la séance concernée. Ne partagez jamais vos mots de passe ni vos jetons d'accès, et ne les enregistrez pas dans vos fichiers de code.
6. Tests de validation avant la séance¶
Réalisez ces vérifications dans votre environnement. Si l'une échoue, consultez le tableau de dépannage ou prévenez l'enseignant avant la séance.
Liste de validation (chapitres 1 à 10)
- L'environnement a accès à Internet
-
docker versionaffiche à la fois le client et le serveur -
docker run hello-worldse termine par un message de bienvenue -
docker compose versionaffiche une version - Vous disposez d'au moins 10 Go d'espace disque libre
- (Options B et C) Un snapshot de la VM existe
Liste de validation supplémentaire (chapitres 11, 12 et 14)
- Les trois VM ont des noms d'hôte différents
- Chaque VM joint les deux autres avec
ping - Docker est validé sur chacune des trois VM
- Les ports 2377/tcp, 7946 (tcp et udp) et 4789/udp ne sont pas bloqués entre les VM
7. Dépannage¶
| Symptôme | Pistes |
|---|---|
permission denied en lançant docker sous Linux |
Utilisez sudo, ou ajoutez votre utilisateur au groupe docker comme indiqué au Lab 1.1, puis rouvrez votre session |
docker version n'affiche pas la partie serveur |
Le service Docker n'est pas démarré : vérifiez-le avec systemctl status docker (Linux) ou lancez Docker Desktop et attendez qu'il soit prêt |
| Impossible de télécharger une image | Vérifiez l'accès Internet de l'environnement et la résolution de noms (ping docker.com) |
| Docker Desktop ne démarre pas à côté de VMware Workstation | Vérifiez que la virtualisation est activée dans le BIOS et que WSL 2 est installé ; à défaut, passez à l'option B ou C |
| Les VM du cluster ne se joignent pas | Vérifiez qu'elles sont sur le même réseau virtuel, notez leurs adresses IP, testez avec ping |
| Un nœud ne rejoint pas le cluster Swarm | Vérifiez les ports de la section 4, l'adresse du manager et l'unicité des noms d'hôte |
| Plus d'espace disque | Supprimez les VM ou snapshots inutiles ; un disque de 20 Go est un minimum pour les chapitres de la partie 3 |