Branches & fusion
Une branche Git n'est rien d'autre qu'un pointeur mobile vers un commit — c'est ce qui rend le branching quasi instantané et peu coûteux (contrairement à d'autres VCS où créer une branche pouvait dupliquer tout le projet). Travailler avec des branches permet d'isoler des fonctionnalités en cours sans jamais perturber la branche principale.
Cycle de vie d'une image et d'un conteneur
Comprendre la différence entre une image (figée, en lecture seule) et un conteneur (une instance en cours d'exécution) est la clé pour ne pas se perdre dans les commandes Docker.
Dépôt & historique
Un dépôt Git enregistre l'état d'un projet à travers une série de commits — des instantanés (snapshots) reliés entre eux, formant un historique complet et immuable. Comprendre les trois zones de travail (working directory, staging area, repository) est la clé pour comprendre toutes les commandes qui suivent.
Dépôts distants & collaboration
Un dépôt distant (remote) est simplement une copie du dépôt hébergée ailleurs — sur GitHub, GitLab, ou un serveur privé. Comme Git est distribué, un dépôt distant n'a rien de spécial techniquement : c'est un dépôt Git comme un autre, désigné par convention comme la référence commune sur laquelle l'équipe se synchronise.
Docker Compose
Dès qu'une application dépend de plusieurs conteneurs (un serveur web, une base de données, un cache...), lancer chacun à la main avec docker run devient vite ingérable. Compose décrit toute une application multi-conteneurs dans un seul fichier YAML, démarrable/arrêtable en une commande.
Dockerfile — référence complète
Un Dockerfile est une recette texte, exécutée instruction par instruction, où chaque instruction qui touche au système de fichiers crée une nouvelle couche. Comprendre ça explique la plupart des bonnes pratiques d'écriture.
GitLab : merge requests, CI/CD & registre
GitLab est une plateforme construite autour de Git : elle héberge les dépôts, mais ajoute toute une couche collaborative — revue de code via les merge requests, automatisation via CI/CD, et un registre d'images intégré. Contrairement à Git (protocole/outil), GitLab est un produit, disponible en SaaS (gitlab.com) ou auto-hébergé.
Images & système de fichiers en couches
Une image Docker n'est pas un gros fichier monolithique : c'est un empilement de couches (layers), chacune représentant un diff du système de fichiers. C'est ce qui rend le partage d'images efficace — plusieurs images peuvent partager des couches identiques.
Installation & configuration de Git
Git est un gestionnaire de version distribué, créé par Linus Torvalds en 2005 pour les besoins du noyau Linux (après la fin de l'accord de licence avec BitKeeper). Contrairement à un système centralisé (SVN, CVS), chaque clone d'un dépôt Git contient l'historique complet — il n'y a pas de serveur unique indispensable pour travailler.
Installation de Docker sur Linux
Deux approches existent : le paquet docker.io fourni par la distribution (souvent en retard sur la dernière version) ou le dépôt officiel Docker, recommandé pour avoir des versions à jour et cohérentes. Ce cours couvre l'installation via le dépôt officiel sur une distribution basée Debian/Ubuntu.
Installation de LXC sur Linux
Installer les outils LXC bruts (Debian/Ubuntu)
Introduction & architecture de Docker
Docker (2013) n'a pas inventé les conteneurs — les namespaces et cgroups existaient déjà, et LXC les combinait depuis 2008. Sa contribution a été de rendre les conteneurs faciles à utiliser : un format d'image portable, une commande unique pour construire/lancer/partager, et un écosystème complet autour (Docker Hub, Compose...).
LXD & Incus — la couche de gestion moderne
Comme vu dans le cours Introduction & concepts, Incus (fork communautaire de LXD) est aujourd'hui l'interface recommandée pour gérer des conteneurs LXC au quotidien : un démon avec API REST, une CLI unifiée, des images prêtes à l'emploi, et la gestion intégrée du stockage/réseau. Les commandes ci-dessous utilisent incus, quasi identiques avec lxc sous LXD (il suffit généralement de substituer le nom de la commande).
Mémo GitLab — infographie (Git & GitLab en 16 catégories)
Aide-mémoire imprimable (recto-verso) : 16 catégories, de la configuration initiale de Git jusqu'au Container Registry de GitLab — commandes git au quotidien au recto, plateforme GitLab (merge requests, glab, CI/CD, releases, registry) au verso.
Podman — l'alternative sans daemon
Développé par Red Hat, Podman répond à deux critiques historiques de l'architecture Docker une expérience CLI quasi identique à docker, sans ces deux contraintes.
R5.04 — Autoformation Git : des premiers pas au travail à plusieurs
Support d'autoformation (BUT Réseaux & Télécommunications, IUT d'Aix-Marseille, module R5.04) : installer et configurer Git, dépôt/commit/aire d'indexation, branches et fusion, puis travail avec un dépôt distant — avec points de contrôle et quiz auto-corrigés à chaque étape.
Référence complète des commandes Docker
Aide-mémoire exhaustif des commandes docker sur Linux, organisé par thème. Pour les concepts derrière chaque commande, voir les cours dédiés (Images, Volumes, Networks...).
Référence complète des commandes lxc-*
Aide-mémoire des outils bas niveau liblxc (préfixés lxc-). Pour l'usage quotidien, la couche LXD/Incus est recommandée, mais connaître ces commandes reste utile pour comprendre ce qui se passe en dessous — et Incus/LXD s'appuient dessus.
Registres d'images (Registries)
Un registre est un serveur qui stocke et distribue des images, conformément à la spécification OCI distribution-spec (voir OCI). Docker Hub est le registre public par défaut, mais l'écosystème en compte beaucoup d'autres.
Réseaux Docker
Chaque conteneur reçoit par défaut sa propre pile réseau isolée (un network namespace). Docker gère la connectivité entre conteneurs et vers l'extérieur via des drivers réseau configurables.
Volumes & persistance des données
Comme vu dans le cours Cycle de vie, la couche inscriptible d'un conteneur disparaît avec lui. Pour toute donnée qui doit survivre à la suppression d'un conteneur (base de données, fichiers uploadés...), il faut un mécanisme de stockage externe à cette couche.