Formation en DevOps: Docker - Créer et administrer ses conteneurs virtuels d'application - Ascent Formation
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

    Formation Docker - Créer et administrer ses conteneurs virtuels d'application | Ascent Formation