Public
Administrateurs, chefs de projet et toute personne souhaitant mettre en oeuvre
Docker pour déployer ses applications
Objectifs
Comprendre le principe de Docker Savoir mettre en œuvre la solution ainsi que les produits de l'écosystème
Être en mesure de déployer des images tout en intégrant les contraintes de production
Programme
Introduction
-
Présentation docker, principe, fonctionnalités
-
Besoins : packaging d'applications, déploiement rapides, coexistence de plusieurs versions d'une application sur un même serveur
Principe et architecture
-
Les conteneurs lxc.
-
Présentation de lxc : Linux containers, historique, principe de fonctionnement
-
Les Cgroups
-
L'isolation de ressources, création d'un environnement utilisateur
-
Positionnement par rapport aux autres solutions de virtualisation
-
Les systèmes de fichiers superposés
-
Présentation de aufs
-
Apports de Docker : Docker Engine pour créer et gérer des conteneurs Dockers
-
Plates-formes supportées
-
L'écosystème Docker: Docker Machine, Docker Compose, Kitematic, Docker Swarm, Docker Registry
Gestion des images et des conteneurs
-
Utilisation de DockerFile pour créer de images personnalisées : principales instructions (RUN, FROM, ENV, EXPOSE, etc ...)
-
Recommandations et bonnes pratiques d'écriture de DockerFile
-
Gestion des conteneurs : création, affichage, sauvegarde de l'état
-
Présentation du Docker Hub
-
Publication d'images vers un registry
Volumes de données
-
Initialisation des volumes de données lors de la création d'un container
-
Ajout de volumes de données, contrôle avec la commande Docker inspect
-
Sauvegarde, migration, restauration de volumes
-
Création de conteneurs de volumes de données
Administration
-
Applications multi-conteneurs avec Compose
-
Méthodes d'administration de conteneurs en production
-
Orchestration avec Docker Machine
-
Présentation de Swarm pour le clustering
-
Configuration réseau et sécurité dans Docker
Prérequis
Administrateurs, chefs de projet et toute personne souhaitant mettre en œuvre Docker pour déployer ses applications
Connaissances de base d'un système Linux/Unix et de la programmation
Expérience souhaitable de l'utilisation d'un de ces systèmes