Logo de l'organisme de formation

La formation au coeur de l'avenir technologique

Représentation de la formation : Docker - Initiation et approfondissement

Docker - Initiation et approfondissement

Formation à distance
Durée : 35 heures (5 jours)
Durée :35 heures (5 jours)
HT
Se préinscrire
Durée :35 heures (5 jours)
HT
Se préinscrire
Durée :35 heures (5 jours)
HT
Se préinscrire

Formation créée le 22/03/2024.

Version du programme : 1

Programme de la formation

Objectifs de formation : Fournir une compréhension complète de Docker, de la création de conteneurs à la gestion des services dans un environnement Docker Swarm ou Kubernetes, en passant par la sécurisation et l'optimisation des images Docker.

Objectifs de la formation

  • Comprendre l'architecture et les composants clés de Docker
  • Savoir créer, gérer et déployer des conteneurs Docker
  • Maîtriser la création et la gestion des images Docker
  • Apprendre à configurer et gérer des services avec Docker Swarm
  • Connaître les bonnes pratiques pour sécuriser et optimiser les conteneurs Docker

Profil des bénéficiaires

Pour qui
  • Développeurs
  • DevOps
  • Architectes logiciels
  • Administrateurs systèmes
Prérequis
  • Connaissances de base en administration système
  • Compréhension élémentaire des principes de développement logiciel

Contenu de la formation

  • Docker Engine et architecture (3 heures)
    • Les fondamentaux de Docker : fonctionnement et objectifs
    • Exploration en détail de l'architecture de Docker, y compris le Docker daemon, le REST API, et le CLI
    • Travaux pratiques: Installation de Docker et préparation à l’usage
  • Conteneurisation d'une application simple (3 heures)
    • Définition de conteneuriser et cycle de vie
    • Introduction aux conteneurs: Isolation, images, et couches d'images
    • Interconnexion des Conteneurs: Concepts de Docker networking, ponts réseau (docker network), et leur configuration
    • Logs et Monitoring: Extraction des logs (docker logs) et utilisation de Docker stats pour monitorer l'utilisation des ressources
    • Travaux pratiques: Dockerisation d'une application Python/Flask simple, construction de l'image et exécution du conteneur
  • Création et gestion des images Docker (4 heures)
    • Dockerfile: Syntaxe, instructions (FROM, RUN, CMD, EXPOSE, ENV, COPY, ADD)
    • Construction d'Images: docker build, gestion du cache, tagging (docker tag)
    • Docker Hub et Registries Privés: Push/pull d'images, gestion des versions
    • Travaux pratiques: Écriture d'un Dockerfile pour une application Node.js, construction de l'image, et push sur Docker Hub
  • Dockerfile avancé (3 heures)
    • Optimisation des images: Réduction de la taille des images, multi-stage builds (FROM ... AS), minimisation des couches
    • Gestion des secrets et configurations: Utilisation de variables d'environnement, docker secret
    • Health Checks: Configuration des vérifications d'état (HEALTHCHECK)
    • Travaux Pratiques : Refonte d'un Dockerfile existant pour optimiser la taille de l'image et intégrer des health checks
  • Réseau dans Docker (4 heures)
    • Types de réseau Docker: Bridge, Host, Overlay, Macvlan, et leurs cas d'usage
    • DNS et découverte de service: Compréhension de la résolution de noms dans Docker
    • Sécurisation du réseau: Meilleures pratiques pour isoler les conteneurs.
    • Travaux pratiques : Configuration d'un réseau overlay dans un environnement Docker Swarm pour permettre la communication entre services sur différents hôtes
  • Stockage et volumes (3 heures)
    • Persistance des données: Volumes (docker volume), bind mounts, tmpfs mounts, et leurs différences
    • Gestion des données dans les clusters: Solutions pour la persistance des données dans Docker Swarm et Kubernetes
    • Travaux pratiques : Mise en œuvre de volumes Docker pour stocker des données persistantes pour une base de données PostgreSQL dans un conteneur
  • Introduction à Docker Compose (4 heures)
    • YAML et configuration de services: Structure du fichier docker-compose.yml, définition de services, réseaux, et volumes
    • Gestion du cycle de vie d'application: Commandes docker-compose up, down, logs
    • Travaux pratiques : Utilisation de Docker Compose pour orchestrer une application microservices comprenant une API REST, une base de données, et un frontal web
  • Orchestration avec Docker Swarm (3 heures)
    • Initiation à Docker Swarm: Création d'un cluster Swarm, rôles des nœuds (manager, worker)
    • Services Swarm et réplicas: Déploiement et mise à l'échelle de services dans un Swarm, stratégies de mise à jour
    • Routage de Réseau et Load Balancing: Comprendre le routage mesh et les services ingresses
    • Travaux pratiques : Configuration d'un cluster Docker Swarm pour déployer et gérer un service web à haute disponibilité
  • Sécurisation des Conteneurs Docker (3 heures)
    • Pratiques de sécurité pour les images et conteneurs: Minimisation de l'empreinte des conteneurs, gestion sécurisée des secrets et des accès, analyse de vulnérabilités avec des outils comme Clair
    • Sécurité au niveau du réseau: Isolation du réseau, filtrage avec iptables, et meilleures pratiques pour sécuriser la communication entre conteneurs
    • Gestion des utilisateurs et contrôle d'accès: Limitation des privilèges des conteneurs, utilisation de user namespaces pour séparer les privilèges des processus conteneurisés
    • Travaux pratiques : Sécurisation d'une application Docker en appliquant les principes de moindre privilège, configuration des règles de réseau, et intégration d'un scan de vulnérabilités dans le processus de build.
  • Monitoring et Logging (3 heures)
    • Surveillance de l'infrastructure Docker: Utilisation de Docker stats et de solutions de monitoring externes comme Prometheus et Grafana pour collecter et visualiser les métriques des conteneurs et du système
    • Gestion des Logs: Configurations de logging pour Docker, centralisation des logs avec des outils comme ELK (Elasticsearch, Logstash, Kibana) ou Loki
    • Travaux pratiques : Mise en place d'une pile de monitoring et de logging pour un cluster Docker Swarm, incluant la configuration de Prometheus pour collecter les métriques et de Grafana pour la visualisation
  • Bonnes Pratiques (2 heures)
    • Récapitulatif des meilleures pratiques: Discussion sur les meilleures pratiques en termes de développement, de build, de déploiement, et de maintenance des applications conteneurisées
    • Pour aller plus loin : Présentation des ressources disponibles pour continuer à apprendre et à se perfectionner sur Docker, y compris la documentation officielle, les forums, et les groupes d'utilisateurs.
Équipe pédagogique

Professionnel expert dans le DevOps

Suivi de l'exécution et évaluation des résultats
  • Feuilles de présence
  • Mises en situation
  • Formulaires d'évaluation de la formation
  • Certificat de réalisation de l’action de formation
  • Émargement numérique
Ressources techniques et pédagogiques
  • Documents supports de formation projetés
  • Exposés théoriques
  • Etude de cas concrets
  • Mise à disposition en ligne de documents supports à la suite de la formation
  • Espace intranet de formation

Qualité et satisfaction

Taux de satisfaction des stagiaires Progression des compétences visées Taux d'abandon Taux de retour des enquêtes Taux d'interruption en cours de prestation