Docker : Initiation + Approfondissement

Formation inter-entreprise

À qui s'adresse la formation?

Administrateurs Systèmes et Réseaux - DSI

Durée

5,00 jour(s)

Langues(s) de prestation

EN FR

Prochaine session

Prérequis

Bases de l'administration systèmes sous Linux et Windows

Objectifs

Connaître les caractéristiques d'un conteneur Linux et découvrir Docker - Installer et utiliser Docker, connaître les fonctionnalités avancées - Maîtriser les images Docker et leur cycle de vie, rédiger des "Dockerfile" - Connaître et configurer une Registry (publique et privée) - Maîtriser les notions réseaux de Docker (drivers, links) - Comprendre et maîtriser la persistance des données (drivers, volumes) - Maîtriser la notion de service et stack Docker avec Docker-compose - Utiliser Docker Swarm pour déployer une stack orientée Production - Maîtriser les bonnes pratiques - Maîtriser la sécurité de sa plateforme docker.

Contenu

Introduction

Les différentes formes de virtualisation et leur concept
Présentation des avantages et des cas d'utilisation des conteneurs
Présentation de Docker et de son architecture

Prendre en main Docker

Installer Docker
Utiliser les commandes de base du client Docker
Expliquer un conteneur et son cycle de vie
Instancier un conteneur (mode interactif, mode détaché)
Administrer et superviser un conteneur depuis le docker host (exec, inspect, logs...)

Atelier pratique: Mise en place de Docker, démarrer et administrer un premier micro service

Manipuler des images Docker

Présentation du concept d'images Docker (Docker Hub, images personnalisées)
Les différentes méthodes de conception d'une image Docker
Créer une image à partir d'un conteneur (commit)
Créer une image à partir d'un Dockerfile
Les instructions dans un Dockerfile (FROM, COPY, ADD, EXPOSE, ENTRYPOINT, CMD)
Gérer le cycle de vie des images (labels, tags, versionning mineur/majeur)
Sélectionner et récupérer une image depuis la communauté "Docker Hub"
Le concept des layers et du cache (optimisation)
La registry et le stockage des images (registry privée, registry "Docker Hub" )

Atelier pratique: Création, installation d'images. Mise en place d'une registry privée et gérer ses images

Configurer le réseau pour Docker

Le conteneur dans son réseau (stack réseau Docker)
Le port forwarding (PAT)
Liaisonner des conteneurs (links)
Les différents réseaux proposés par Docker (drivers, les impacts et cloisonnements)

Atelier pratique: Faire communiquer les conteneurs, mise en place d'un LEMP à partir de 3
conteneurs: PHP, MySQL, nginx.

Gérer les systèmes de fichiers pour Docker

Le principe de volumes associés à un conteneur
Créer et persister des volumes docker
Gérer les modèles de configuration et leurs bonnes pratiques

Atelier pratique: Créer des volumes sur son Docker host pour persister et visualiser les données des conteneurs

Réaliser une Infrastructure As Code avec Docker

Introduction au DevOps
Docker-compose: la solution pour créer, assembler et administrer son service de conteneurs
Mettre en place un contrôle de l'exécution

Atelier pratique: Mise en place d'un LEMP avec Docker-compose à partir de 3 conteneurs précédemment abordés: PHP, MySQL, nginx

Appréhender le déploiement à grande échelle avec Docker

Les enjeux
Docker-machine ( créer rapidement sa plateforme Docker avant mise en production)
L'orchestrateur Swarm: nodes, services
Déploiement de services et stacks dans un Swarm
Comment sécuriser l'infrastructure Docker (TLS/SSL, Apparmor et SeLinux)
Interface de management (Portainer)
Présentation des outils de déploiements et de gestion de configuration (ansible, puppet, salt)
Présentation des différents orchestrateurs

Optimiser la conception d'images

Rappels sur la conception des "Dockerfiles"
Développer une conception et une gestion fine du cycle de vie des images
Justifier la gestion du cache avec les "layers"
Rompre avec le systeme d'idempotence
Construite une image en "multi-stage builds"
Contrôler l'état applicatif dans l'image
Identifier les projets communautaires incontournables: analyse, métrics, reverse-proxy, sécurité

Atelier pratique: Création d'images via le multistage-build. Analyse
des layers,optimisation du cache. Utilisation de la registry privée. Utilisation d'images de la communauté

Restructurer docker-compose

Rappels sur les concepts
Assembler les ressources (les services, les réseaux, les volumes)
Intégrer intelligemment les variables d’environnement
Adapter les contextes de build: "Dockerfile"
Résoudre les dépendances entre services
Mettre en place un contrôle de l'exécution
Industrialiser une stack docker-compose

Atelier pratique: Conception d'une application à travers docker-compose et dockerfile. Industrialisation de la création de stack docker-compose avec l'outil cookiecutter.

Construire un environnement de production: clustering, orchestration et monitoring

Définir les enjeux d'un orchestrateur
Expliquer Swarm et ses fonctionnalités
Illuster la notion de nodes (manager, worker)
Examiner le réseau et les "topologies mesh"

Atelier pratique: Installation d'un cluster swarm (avec docker-machine). Installation d'outils de
visualisation et monitoring de l'infra. Démarrage d’un service et mise à l’échelle au sein du cluster.

Gérer le cycle de vie approfondi des conteneurs

Consolider les ressources à travers les commandes docker update
Délimiter les domaines d'exécutions des conteneurs (les labels, placements par node)
Utiliser les mécanismes de "rolling update" et "rollback"

Atelier pratique: Sur la base de l'infrastructure précedemment mise en place, nous allons effectuer des montées de
version, puis effectuer des rollbacks.Optimisation de l'emplacement des conteneurs.

Appréhender la sécurité pour Docker

Sécuriser la plateforme avec TLS/SSL (client, hotes, registry)
Identifier les risques: noyau, service Docker, containers, déni de service, accès réseau
Utiliser des mécanismes de protection: "subnet" spécifique par application, limitations de ressources par les
"cgroups", restrictions des droits d'accès sur les sockets, politique de sécurité des containers
Examiner les "events" docker
Fiabiliser les images déployées dans
Docker: présentation de "Content Trust" pour signer les images

Atelier pratique: Mise en évidence de failles de sécurité et des bonnes pratiques à adopter. Isolations et
limitations des ressources. Création et déploiement d'images signées.

Méthodes pédagogiques

Méthodologie basée sur l'Active Learning : 75% de pratique minimum. Chaque point théorique est systématiquement suivi d'exemples et exercices.

Évaluation

Contrôle continu

Certificat, diplôme

Attestation de fin de stage mentionnant le résultat des acquis

Contact pour cette formation

Dawan - Service commercial

Ces formations pourraient vous intéresser

EN
Journée
Sur demande
Informatique et systèmes d'information - Analyse programmation - Interface