Formation LINUX Docker
Objectifs
Appréhender les namespaces, les control groups et la différence entre containers et machines virtuelles.
Installer Docker, utiliser le modèle client/serveur et créer des containers.
Créer des images avec Dockerfile, utiliser le multi-stages build et gérer le cache.
Mettre en place et utiliser un registry, comprendre les différentes options disponibles comme Docker Hub et Harbor.
Utiliser le fichier docker-compose.yml et déployer des applications multi-containers.
Expliquer la notion de volume et l’utiliser dans différents cas d’usage.
Appréhender les éléments de sécurité comme l’isolation, la limitation des ressources et les scans de vulnérabilités.
Utiliser des outils comme Prometheus et Netdata pour la supervision et gérer les logs avec Docker.
Pré-requis
Participants
Programme de formation
QUICK WINS
Les bénéfices immédiats de Docker
DES CONCEPTS UTILES
Architecture micro-services
Application Cloud Native
LES CONTAINERS LINUX
Qu'est-ce qu'un container ?
Namespaces
Control Groups
Containers et Machines Virtuelles
LA PLATEFORME DOCKER
Vue d'ensemble
Les différentes éditions
Modèle client/serveur
Installation
Online playground
Travaux pratiques
- Installation
LES CONTAINERS AVEC DOCKER
Création d'un container
Mode interactif
Foreground vs Background
Publication des ports
Les commandes de base
Des alias utiles
Travaux pratiques
- Création de containers
- Utilisation des commandes de base pour la gestion du cycle de vie
LES IMAGES DOCKER
Définition
Union filesystem & Copy-On-Write
Méthodes pour la création d'images
Dockerfile
Exemples
Le contexte de build
Multi-stages build
Gestion du cache
Les commandes de base
Travaux pratiques
- Création d'images
- Utilisation des différentes instructions d'un Dockerfile
- Utilisation du multi-stages build
REGISTRY
Utilisation
Les registries Docker
Autres registries de l'écosystème
Docker Hub
Démo de la solution Harbor
Travaux pratiques
- Déploiement du registry open source
DOCKER COMPOSE
Présentation
Le format de fichier docker-compose.yml
Les instructions de base
Le binaire docker-compose et son utilisation
Travaux pratiques
- Déploiement d'applications avec Docker Compose
- Exemple avec un stack Elastic
STOCKAGE
La notion de volume
Utilisation et cas d'usage
Travaux pratiques
- Création de volumes
SECURITE
Les éléments de sécurité avec Docker
Isolation (namespaces) et limitation des ressources (cgroups)
Linux Security Modules
Capabilities/Seccomp
Scan de vulnérabilités
OBSERVABILITE
Présentation de la stack Prometheus pour la gestion des metrics
Présentation de la solution Netdata
Gestion des logs avec Docker
Travaux pratiques
- Déploiement d'une stack Prometheus
- Envoi des logs applicatifs dans une solution tierce