Introduction à la formation Docker
Retour sur les technologies de virtualisation
Présentation générale et introduction aux conteneurs
Un LXC (LinuX Containers) augmenté
Pourquoi utiliser Docker ? Bénéfices par rapport aux machines virtuelles
Positionnement sur le marché (Kubernetes, Mesos…)
Se familiariser avec la terminologie et les concepts fondamentaux
Visualiser l’architecture Docker : daemon, client, images, services…
L’écosystème Docker (Docker Cloud, Docker Compose, Docker Machine, Docker Hub…)
Choisir une édition : Docker Desktop, Docker Community Edition (Docker CE) et Enterprise Edition (Docker EE)
Installation et prise en main
Installer et configurer Docker
Installer l’environnement de développement
Vérifier l’installation, image Hello World
Les images et conteneurs
Isolation des conteneurs
Comprendre le processus de build Docker
Découverte du Docker Hub et Docker Store : télécharger et stocker des images
Exemples de cas pratiques : Installation de Docker, mise en place de l’environnement et exécution d’un premier conteneur, manipulations des commandes (docker run, docker ps, docker image ls…)
Images et conteneurs
Créer une image depuis un conteneur
Créer une image en utilisant un Dockerfile : instructions et bonnes pratiques
Les layers et la mise en cache
Publier des images vers un registry privé
Créer des conteneurs personnalisés
Gérer les conteneurs : lancement, arrêt, débogage…
Optimiser la création d’images
Exemples de cas pratiques : Création, manipulation et partage d’images et de conteneurs personnalisés
Volumes et persistance des données
Cycle de vie d’un conteneur
Volumes, bind mounts et tmpfs mounts (Linux)
Créer et utiliser les volumes Docker
Modifier les données dans un volume
Sauvegarder, migrer et restaurer des volumes
Créer des conteneurs de volumes de données
Exemples de cas pratiques : Mise en œuvre des bonnes pratiques pour utiliser les volumes Docker
Réseaux
La commande docker network et ses sous-commandes
Les différents types de réseaux : bridge, overlay, host, none, macvlan…
Serveur DNS intégré
Gestion des ports réseaux (port mapping)
Lier des conteneurs
Partager des données entre conteneurs
Plugins réseaux
Exemples de cas pratiques : Création et gestion de base des réseaux Docker
Docker Compose
Présentation et installation de docker-compose
Commandes de base
Créer un fichier yml de configuration
Mise en œuvre d’une application multi-conteneurs
Gérer des microservices avec Docker Compose
Exemples de cas pratiques : Création d’un projet piloté par Docker Compose, gestion de multiples conteneurs liés
Orchestration et clustering
Présentation de l’outil de provisioning Docker Machine
Installer et utiliser docker-machine
Qu’est-ce que Docker Swarm ? Présentation et installation
Nœuds Manager et Worker
Configurer le Swarm Mode
Créer des services et des clusters
Gestion des clusters : ajouter des nœuds, déployer un service…
Service Discovery et répartition de charge (load balancing)
Gérer les données sensibles avec les secrets Docker
Présentation de Kubernetes, l’outil d’orchestration développé par Google
Exemples de cas pratiques : Création d’un cluster à plusieurs nœuds, déploiement d’applications en tant que collections de services, manipulation des fonctionnalités d’orchestration en utilisant Docker Machine, Docker Swarm et Docker Compose
Docker en production
Bonnes pratiques et outils
Gérer les logs des conteneurs
Monitorer des conteneurs
Intégration continue
Exemples de cas pratiques : Présentation d’un workflow Docker, du développement à la production