Retour aux formations
DevOps
Docker - Créer et administrer ses conteneurs virtuels d'application
3 jour(s) • 21h
Description
Cette formation Docker vous permettra de maîtriser la création et l'administration de conteneurs virtuels d'application. Vous apprendrez à gérer les images, les volumes, les réseaux et les applications multi-conteneurs avec Docker. La formation est conçue pour les développeurs, les administrateurs système et les ingénieurs DevOps souhaitant acquérir des compétences opérationnelles en conteneurisation.
Objectifs pédagogiques
- Comprendre l'architecture de Docker et le positionnement des conteneurs dans un écosystème DevOps
- Créer, administrer et superviser des conteneurs Docker via la CLI
- Construire des images personnalisées avec Dockerfile, en appliquant les bonnes pratiques de taille et de sécurité
- Gérer les réseaux Docker et assurer la persistance des données avec les volumes
- Orchestrer des applications multi-conteneurs avec Docker Compose V2
- Sécuriser ses images et ses conteneurs : utilisateur non-root, capabilities, secrets, scan de vulnérabilités
- Intégrer Docker dans un pipeline CI/CD et comprendre les perspectives vers l'orchestration à l'échelle
Public concerné
Développeurs
Administrateurs système
Ingénieurs DevOps
Architectes applicatifs souhaitant prendre en main Docker de manière opérationnelle
Prérequis
Connaissances de base d'un environnement Linux/Unix (navigation terminal, commandes de base)
Une première expérience en développement ou administration système est recommandée
Déroulé du programme
1
Jour 1 / Fondamentaux Docker, images et exploitation des conteneurs (7h)
7h
2
Module 1 / Positionnement de Docker et des conteneurs (1h)
1h
3
Niveaux de virtualisation : système vs applicatif
4
Conteneurisation vs virtualisation : avantages, limites, complémentarité
5
Docker dans l'écosystème DevOps : Infrastructure as Code, CI/CD, microservices
6
Vocabulaire de référence : image, conteneur, registry, daemon, Dockerfile, Compose
7
Introduit en évocation : Podman comme alternative rootless à Docker
8
Module 2 / Architecture de Docker (1h)
1h
9
Daemon Docker et architecture client/serveur
10
API Docker et communication client/moteur
11
Composants fondamentaux : images, registry, conteneurs
12
Docker Engine (Linux) et Docker Desktop (Windows/macOS) : différences et cas d'usage
13
Syntaxe actuelle : docker compose sans tiret (Compose V1 docker-compose supprimée depuis juin 2023) ; version de Docker Engine adaptée à l'environnement de lab
14
Module 3 / Gestion des images et des registres (1h30)
1h
15
Cycle de vie d'une image : couches, cache, historique
16
Docker Hub : navigation, pull, push, nommage des images
17
Registre privé : création et administration
18
Approfondi en TP : push d'une image personnalisée sur Docker Hub, déploiement d'un registre privé local
19
Introduit en évocation : Harbor comme solution de registre d'entreprise
20
Module 4 / Conteneurs : création et administration (2h)
2h
21
Instanciation d'un conteneur à partir d'une image
22
Options clés du run : modes interactif/détaché, nommage, variables d'environnement, limites de ressources CPU/mémoire
23
Cycle de vie : start, stop, restart, rm
24
Gestion au quotidien : exec, logs, inspect, stats
25
Approfondi en TP : déploiement et administration d'une application web dans un conteneur
26
Module 5 / Réseau Docker (1h30)
1h
27
Modèle réseau natif Docker : bridge, host, none
28
Publication de ports avec publish
29
Création de réseaux virtuels, DNS interne, communications inter-conteneurs
30
Approfondi en TP : exposition d'un service selon différents modes réseau
31
Jour 2 / Persistance, construction d'images et orchestration multi-conteneurs (7h)
7h
32
Module 6 / Volumes et persistance des données (1h30)
1h
33
Problème de la persistance dans les conteneurs
34
Types de stockage : bind mount, volumes nommés, tmpfs / usages et différences
35
Identification et nettoyage des volumes orphelins
36
Approfondi en TP : persistance d'une base de données PostgreSQL
37
Module 7 / Dockerfile : construction d'images personnalisées (2h30)
2h
38
Instructions fondamentales : FROM, RUN, CMD, ENTRYPOINT, COPY, ADD, EXPOSE, ENV, ARG
39
Multi-stage builds : réduction de la taille des images de production, images distroless et alpine
40
Bonnes pratiques : minimisation des couches, nettoyage des caches, utilisateur non-root, .dockerignore
41
BuildKit : builder par défaut depuis Docker Engine 23, avantages en performance et parallélisation du cache
42
Approfondi en TP : images avec et sans multi-stage build, mesure de l'impact sur la taille
43
Module 8 / Docker Compose V2 : orchestration multi-conteneurs (2h)
2h
44
Syntaxe docker compose (V2) et fichier compose.yaml (nom canonique recommandé)
45
Champ version obsolète et ignoré par Docker Compose actuel : explication et implications
46
Définition de services, réseaux et volumes dans compose.yaml
47
Commandes essentielles : up, down, ps, logs, exec, build
48
Dépendances entre services : depends_on avec condition service_healthy
49
Mise à jour, recréation contrôlée et retour à une version d'image précédente
50
Approfondi en TP : stack web PHP/MySQL/HAProxy avec répartition de trafic et tolérance simple aux incidents
51
Module 9 / Docker Compose : fonctions avancées (1h)
1h
52
Variables d'environnement et fichier .env
53
Sondes de vitalité (healthcheck) : syntaxe et bonnes pratiques actuelles
54
Labels Docker : usage et interaction avec le daemon
55
docker compose watch : rechargement automatique en développement (introduit en démonstration)
56
Configuration avancée des volumes et des réseaux dans Compose
57
Approfondi en TP : stack ELK (Elasticsearch, Logstash, Kibana) pour la centralisation des logs
58
Jour 3 / Sécurité, exploitation et perspectives orchestration (7h)
7h
59
Module 10 / Sécurité des conteneurs (2h)
2h
60
Surface d'attaque : noyau Linux, daemon Docker, images, registres
61
Bonnes pratiques dans le Dockerfile : utilisateur non-root, image de base minimale, multi-stage
62
Scan de vulnérabilités des images : Docker Scout (intégré au CLI Docker) approfondi en TP, Trivy introduit en démonstration
63
Linux capabilities : principe du moindre privilège, --cap-drop, --cap-add
64
Gestion des informations sensibles : comparaison d'usages entre variables d'environnement (.env), Docker secrets (montés dans /run/secrets/) et fichiers de configuration / niveaux de sécurité et cas d'usage distincts, non interchangeables
65
Approfondi en TP : audit d'une image volontairement vulnérable, correction, scan avant/après
66
Module 11 / Exploitation de Docker au quotidien (1h30)
1h
67
Monitoring natif : docker stats, docker events
68
Gestion des ressources en production : limits CPU, mémoire, pids
69
Nettoyage et maintenance : docker system prune, system df
70
Docker dans les pipelines CI/CD : principes d'intégration avec GitLab CI ou GitHub Actions
71
Introduit en évocation : Docker dans le cloud (AWS ECS, Azure Container Instances, Google Cloud Run) ; Compose Bridge pour convertir un compose.yaml en manifests Kubernetes
72
Module 12 / Perspectives orchestration (1h)
1h
73
Limites de Docker Compose en production multi-hôte
74
Docker Swarm : principes, noeuds manager/worker, ingress mesh / introduit en évocation uniquement
75
Positionnement vers Kubernetes : critères de choix, suite naturelle avec le programme Ascent Kubernetes - Mise en oeuvre
76
Atelier de synthèse (2h30)
2h
77
Revue des bonnes pratiques : image, réseau, volume, sécurité, compose
78
Atelier final : conteneurisation complète d'une application de bout en bout / Dockerfile multi-stage + compose.yaml + réseau + volume + sécurité + scan Docker Scout
Informations
Durée
3 jour(s)
21h
Tarif
Sur demande