Vérifier le poste et conserver l’existant
À suivre au module Docker, pas pour commencer SSH. Vérifier la compatibilité du poste dans Docker Desktop Windows. Noter les installations existantes et conserver les travaux. Docker Desktop fournit le moteur Linux via WSL2.
wsl --status
wsl --list --verbose
Get-Command docker -ErrorAction SilentlyContinue
docker context lsVérifier le moteur Docker éventuellement présent. Si Docker est absent, l’erreur de commande inconnue est attendue. Conserver le moteur géré par Docker Desktop.
Installer Docker Desktop
Installer Docker Desktop depuis la source officielle, seulement s’il manque. Activer le moteur WSL2, redémarrer si demandé, ouvrir l’application et vérifier Settings → General → Use the WSL 2 based engine ainsi que le mode conteneurs Linux.
Les TP se réalisent directement dans Terminal Windows — PowerShell 7.4 ou ultérieur, avec Docker Desktop démarré en mode conteneurs Linux. Aucune session Ubuntu, compte student ou préparation Linux n’est nécessaire pour ce parcours.
Vérifier que docker version affiche Client et Server depuis PowerShell. Si Server manque, démarrer Docker Desktop et vérifier le contexte Docker.
Ouvrir Terminal Windows, choisir PowerShell et poursuivre dans ce terminal.
Vérifier le moteur et Compose
Dans Terminal Windows — PowerShell :
docker version
docker compose version
docker context show
docker run --rm hello-worldClient et Server, la version Compose et « Hello from Docker! ». --rm retire le conteneur d’essai ; l’image peut rester dans le moteur. Une erreur de téléchargement oriente vers DNS, proxy ou registre ; elle ne signifie pas nécessairement une panne du moteur.
Activer Kubernetes pour la suite du parcours
Docker Desktop démarré, ouvrir Kubernetes → Create cluster ou, selon la version, Settings → Kubernetes → Enable Kubernetes. Activer Kubernetes et attendre sa disponibilité. Choisir kind avec deux nœuds pour le futur cours : un control plane et un worker. Ne pas réinitialiser un cluster contenant des travaux utiles. Voir les instructions correspondant à votre version.
PowerShell :
kubectl version --client
kubectl config get-contexts
kubectl --context docker-desktop get nodes -o widedeux nœuds Ready, l’un control-plane ; le worker peut afficher <none> comme rôle. Ces nœuds sont des conteneurs, pas des VM d’administration. L’activation prépare le cours futur sans constituer un prérequis du TP SSH. Utiliser kubectl depuis PowerShell.
Désinstallation facultative — après les TP
Conserver Docker pour la suite de la formation. Si son retrait est réellement souhaité : sauvegarder les images, volumes et travaux utiles ; nettoyer d’abord les ressources des TP ; fermer leurs applications et sessions ; désinstaller Docker Desktop depuis Applications installées, selon la procédure officielle.
Le retrait de Desktop supprime ses ressources locales : ne pas le confondre avec le nettoyage d’un TP. Ne pas désinscrire manuellement docker-desktop ou supprimer des dossiers partagés. Le moteur interne de Docker Desktop est géré par Docker Desktop ; aucune distribution Ubuntu de travail n’est à retirer pour ces TP. Conserver une installation préexistante.
l’application n’est plus installée ; un autre client docker éventuel peut encore exister. Vérifier également que les autres distributions WSL et services du poste fonctionnent.
Vérifier Linux et relever l’état initial
Préparer d’abord le compte student et le groupe devops avec Guide : Préparer Linux pour les TP.
Ce parcours utilise Docker Engine natif sur Ubuntu/Debian. Réutiliser un moteur déjà opérationnel. Internet et un accès sudo sont nécessaires.
cat /etc/os-release
command -v docker || true
dpkg-query -W -f='${binary:Package} ${Version}\n' > "$HOME/docker-paquets-avant.txt"
ls -l /etc/apt/sources.list.d/docker* /etc/apt/keyrings/docker* 2>/dev/null || true
systemctl is-active docker || truela distribution, le service éventuel, les paquets et les fichiers de dépôt. Conserver la liste des composants ajoutés dans vos notes. Si un dépôt Docker, Docker Desktop, docker.io, podman-docker, containerd ou runc existe déjà, ne pas exécuter aveuglément l’installation ci-dessous : suivre les consignes de compatibilité officielles sans supprimer un service utilisé.
Installer Docker Engine depuis le dépôt officiel
Uniquement sur un poste Ubuntu/Debian sans moteur ni dépôt Docker préexistant. Les commandes suivantes s’exécutent dans un nouveau terminal Bash dédié à l’installation. Elles ajoutent le dépôt Docker et les paquets du moteur. Les fichiers docker.asc et docker.sources ne doivent pas exister ; les commandes les écriraient.
set -e
. /etc/os-release
case "$ID" in ubuntu|debian) ;; *) echo "Distribution non prise en charge"; exit 1 ;; esac
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL "https://download.docker.com/linux/$ID/gpg" -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/$ID
Suites: $VERSION_CODENAME
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginAPT télécharge les paquets depuis download.docker.com ; sur Ubuntu/Debian le service est normalement démarré. Fermer le terminal d’installation après réussite pour retrouver votre shell habituel.
Autoriser student et vérifier Docker
Depuis un compte administrateur, ajouter student au groupe docker :
Terminal Linux
sudo usermod -aG docker studentLe groupe docker donne des droits comparables à root sur ce moteur. Fermer la session student, puis en ouvrir une nouvelle pour actualiser les groupes :
Terminal Linux
su - student
id
docker version
docker compose version
docker run --rm hello-worldDocker doit afficher Client et Server ; Compose doit être disponible. --rm retire le conteneur d’essai, mais conserve son image pour un usage ultérieur.
Préparer Kubernetes avec kind au cours correspondant
Engine n’a pas de bouton « Enable Kubernetes ». Au moment du cours Kubernetes, installer kind et kubectl selon les procédures officielles, en adaptant l’architecture et en vérifiant les téléchargements. Le moteur doit être utilisable avec votre compte, sans sudo. Ne pas créer ce cluster pour commencer le TP SSH.
Dans un dossier neuf réservé à ce cluster, enregistrer le fichier devops-rncp-kind.yaml :
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: workerTerminal Linux :
kind create cluster --name devops-rncp --config devops-rncp-kind.yaml --wait 5m
kubectl --context kind-devops-rncp get nodes -o widedeux nœuds Ready, un control plane et un worker. Ce sont des conteneurs, pas des VM générales. Si ce nom existe déjà, inspecter le cluster avant de relancer ou supprimer quoi que ce soit.
Retirer les ressources puis désinstaller facultativement
Ordre de nettoyage : arrêter les applications du TP, retirer seulement leurs conteneurs/réseaux/volumes, conserver les données utiles, puis décider si le moteur doit rester pour la suite. Si le cluster nommé a été créé uniquement pour ce parcours et n’est plus utile :
kind delete cluster --name devops-rncpSupprimer son fichier YAML et les binaires kind/kubectl seulement s’ils ont été ajoutés exclusivement pour ce parcours ; préserver les autres contextes kubeconfig. Ne pas exécuter de prune global.
Si Docker Engine a été ajouté uniquement ici et doit vraiment être retiré, comparer avec docker-paquets-avant.txt, vérifier qu’aucun autre service n’en dépend puis simuler le retrait :
sudo apt-get -s remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginSi le plan ne retire que les paquets ajoutés et aucun composant préexistant, exécuter la même commande sans -s. Sinon, conserver le moteur et analyser les dépendances. Retirer docker.sources et docker.asc seulement s’ils ont été créés par cette installation ; retirer l’appartenance au groupe docker uniquement si elle a été ajoutée ici (sudo gpasswd -d "$USER" docker, puis reconnexion).
le moteur retiré ne répond plus ; les autres services du poste restent disponibles. Les données de /var/lib/docker et /var/lib/containerd peuvent rester pour éviter une perte : les inventorier et ne les supprimer que si elles appartiennent exclusivement au laboratoire et ont été sauvegardées. Aucun autoremove, purge ou effacement global automatique n’est prévu.