Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

16 chapitres3 h 45 minIntermédiaire

Conteneurs et Docker

Cours Docker gratuit pour le BTS SIO : conteneurs, Dockerfile, volumes, réseaux, Docker Compose, reverse proxy HTTPS, sécurité et exercices corrigés.

Par Josselyn C., prof de BTS SIO. Mis à jour le .

L'essentiel

Docker est l'outil qui fabrique et fait tourner des conteneurs : une application emballée avec tout ce dont elle a besoin (bibliothèques, configuration, environnement d'exécution), qui démarre en une seconde et se comporte de la même façon sur ton PC, sur un serveur de l'entreprise ou dans le cloud. Au BTS SIO, Docker sert dans les deux options : en SISR pour déployer et superviser des services, en SLAM pour livrer une application avec sa base de données. On le retrouve dans les réalisations professionnelles de l'épreuve E5 (mise à disposition de services) et de l'E6, et la sécurité des conteneurs fait partie des thèmes de l'écrit E7.

À la fin de ce cours, tu sauras :

  • expliquer ce qu'est un conteneur, en quoi il diffère d'une machine virtuelle, et sur quoi repose son isolation ;
  • installer Docker Engine sur un serveur Debian 13 et le piloter en ligne de commande ;
  • écrire un Dockerfile propre : image minimale, construction en plusieurs étapes, utilisateur sans privilège ;
  • conserver les données avec des volumes et faire communiquer des conteneurs sur des réseaux dédiés ;
  • décrire une application complète dans un fichier compose.yaml et la publier en HTTPS derrière un reverse proxy ;
  • surveiller, sécuriser et mettre à jour des conteneurs, et choisir entre Docker, Podman et les conteneurs LXC de Proxmox.

Prérequis. Savoir te servir d'un terminal Linux (cours Linux : administration système) et connaître les notions de port TCP et d'adresse IP (cours Réseaux fondamentaux). Le chapitre 1 se lit sans aucune pratique.

Les versions du cours. Docker Engine 29 sur Debian 13 « Trixie », Docker Compose (la commande docker compose, sans tiret), Proxmox VE 9. Les commandes valent aussi pour Ubuntu 24.04 LTS, avec le dépôt Ubuntu de Docker.

Le fil rouge. Les exemples se passent chez Sorbier Logistique, la PME fictive de transport et d'entreposage des cours Windows Server, Cybersécurité des infrastructures et Intégration continue. Ses serveurs sont des machines virtuelles Proxmox VE dans le VLAN serveurs 192.168.10.176/28 (passerelle 192.168.10.190, DNS de l'annuaire 192.168.10.177 et 192.168.10.181). Tu y installes Docker sur srv-gestion (192.168.10.179), le serveur des applications internes, puis tu y déploies sorbier-frais, l'application de notes de frais écrite par l'équipe de développement, derrière un reverse proxy HTTPS. Le site public de suivi des livraisons tourne, lui, sur srv-web (192.168.10.225), dans la DMZ.

Comment travailler. Monte une VM Debian 13 (sur Proxmox VE, VirtualBox ou Hyper-V) ou installe Docker Desktop sur ton poste, puis tape chaque commande toi-même. Les sorties affichées sont celles que tu dois obtenir, aux identifiants et aux tailles près. Chaque chapitre se termine par des exercices dont la réponse est masquée : cherche d'abord, ouvre ensuite.

Ton objectifChapitres à travailler en priorité
Découvrir Docker1 à 4
Conteneuriser ton application (SLAM, E6)4, 5, 6, 8, 9 et 12
Déployer et exploiter des services (SISR, E5 et E6)2, 3, 6 à 11 et 13
Préparer l'E7 (sécurité)1, 7, 10 et 11
Réviser avant un TP ou une épreuve15 et 16

Sommaire

0%

Conteneurs et Docker

0 chapitre sur 16

  1. Chapitre 1 : C'est quoi Docker ? Conteneur, image et machine virtuelle13 min
  2. Chapitre 2 : Installer Docker Engine sur Debian 1313 min
  3. Chapitre 3 : Les commandes Docker essentielles : run, ps, logs, exec12 min
  4. Chapitre 4 : Images Docker : couches, étiquettes et registres10 min
  5. Chapitre 5 : Écrire un Dockerfile : instructions et bonnes pratiques20 min
  6. Chapitre 6 : Volumes Docker : conserver les données12 min
  7. Chapitre 7 : Réseaux Docker : bridge, DNS interne et publication de ports12 min
  8. Chapitre 8 : Docker Compose : écrire un fichier compose.yaml19 min
  9. Chapitre 9 : Déployer une application complète derrière un reverse proxy HTTPS25 min
  10. Chapitre 10 : Journaux et supervision des conteneurs13 min
  11. Chapitre 11 : Sécuriser Docker : images, secrets, rootless et socket18 min
  12. Chapitre 12 : Docker dans la CI/CD : construire, publier et déployer une image14 min
  13. Chapitre 13 : Docker sur Proxmox VE : dans une VM ou dans un conteneur LXC ?11 min
  14. Chapitre 14 : Podman, LXC et Kubernetes : les alternatives à Docker10 min
  15. Chapitre 15 : Exercices corrigés Docker type BTS SIO15 min
  16. Chapitre 16 : Aide-mémoire : les commandes Docker et Compose7 min
Commencer le cours

Questions fréquentes

C'est quoi Docker et à quoi ça sert ?

Docker est une plateforme qui emballe une application avec tout ce dont elle a besoin (bibliothèques, environnement d'exécution, configuration) dans une image, puis la fait tourner dans un conteneur isolé. L'application se comporte alors de la même façon sur le poste du développeur, sur un serveur de recette et en production. On s'en sert pour déployer des services en quelques secondes, les mettre à jour et revenir en arrière facilement (chapitre 1).

Quelle est la différence entre Docker et une machine virtuelle ?

Une machine virtuelle émule un ordinateur complet et fait tourner son propre système d'exploitation, noyau compris, au-dessus d'un hyperviseur. Un conteneur n'est qu'un groupe de processus isolés qui partagent le noyau de l'hôte : il démarre en moins d'une seconde et pèse quelques mégaoctets, mais il isole moins fortement. En entreprise, on fait le plus souvent tourner Docker dans une VM (comparaison détaillée).

Quelle est la différence entre une image et un conteneur ?

L'image est un modèle figé, en lecture seule, qui contient l'application et son environnement ; le conteneur est une instance de cette image en cours d'exécution, avec sa propre couche inscriptible. Une image peut lancer autant de conteneurs qu'on veut, comme une classe crée des objets. Supprimer un conteneur ne touche pas l'image (vocabulaire de Docker).

Docker est-il gratuit ?

Docker Engine, le moteur installé sur les serveurs Linux, est libre et gratuit pour tous les usages. Docker Desktop, l'application pour Windows et macOS, est gratuite pour un usage personnel, l'enseignement et les entreprises de moins de 250 salariés et de moins de 10 millions de dollars de chiffre d'affaires ; au-delà, un abonnement est obligatoire. Podman est une alternative entièrement libre (Docker Engine et Docker Desktop).

Faut-il écrire docker-compose ou docker compose ?

Écris docker compose, avec une espace : c'est Compose actuel, intégré à Docker (renuméroté v5 fin 2025, avec les mêmes commandes que v2). L'ancien docker-compose, avec un tiret, était un programme Python séparé, abandonné depuis 2023. Le fichier s'appelle de préférence compose.yaml et ne doit plus commencer par la clé version, devenue obsolète (Compose aujourd'hui).

Comment ne pas perdre les données d'un conteneur ?

Tout ce qu'un conteneur écrit hors d'un montage disparaît quand on le supprime. Les données qui comptent (les fichiers d'une base, les documents déposés) doivent être dans un volume nommé, monté sur le bon dossier, par exemple /var/lib/mysql pour MySQL. Il faut ensuite sauvegarder ces données hors du serveur, avec un export logique pour une base (chapitre 6).

Pourquoi mon conteneur ne joint-il pas la base avec localhost ?

Dans un conteneur, localhost désigne le conteneur lui-même, pas l'hôte ni les autres conteneurs. Place l'application et la base sur le même réseau Docker (Compose le fait automatiquement) et utilise le nom du service de la base comme nom d'hôte, par exemple DB_HOST=bdd. Le DNS interne de Docker le traduit en adresse IP (réseaux personnalisés).

Docker ou Podman : lequel choisir ?

Les deux font tourner les mêmes images OCI avec des commandes presque identiques. Docker reste le plus répandu, avec Compose et Docker Desktop ; Podman fonctionne sans démon et sans root par défaut, et s'intègre à systemd grâce à Quadlet, ce qui plaît aux équipes soucieuses de sécurité. Pour débuter et pour la plupart des projets du BTS, Docker convient ; savoir expliquer les différences est un vrai plus (chapitre 14).

Sur Proxmox, faut-il installer Docker dans une VM ou dans un conteneur LXC ?

Dans une VM : c'est la pratique recommandée par la documentation de Proxmox VE pour l'isolation et la migration à chaud, et Docker y fonctionne exactement comme sur un serveur. Un conteneur LXC avec l'option nesting est possible pour un laboratoire, mais jamais en mode privilégié. Docker ne s'installe jamais directement sur l'hôte Proxmox (chapitre 13).