Docker - Initiation et approfondissement
Formation créée le 22/03/2024.
Version du programme : 1
Version du programme : 1
Type de formation
Formation à distanceDurée de formation
35 heures (5 jours)Docker - Initiation et approfondissement
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