Docker

Formation Docker : déployer des conteneurs applicatifs Docker pour les conteneurs

Docker est un projet open source qui permet d’automatiser le déploiement d’applications dans des conteneurs logiciels. Il peut empaqueter une application et ses dépendances dans un conteneur isolé, qui pourra être exécuté sur n’importe quel serveur. Cette formation vous permettra de comprendre les concepts d’isolation et de conteneurisation dans un environnement Linux, de créer vos propres images, conteneurs, réseaux virtuels, via Docker Engine, Dockerfile, Docker-compose... Elle s’effectuera sur la dernière version de Docker, sur Rocky Linux ou Ubuntu server.

Résumé

Logiciels : systèmes Windows 10, OS/X, GNU+Linux et Docker
Durée : 21 heures
Objectifs :
- Installer, paramétrer et exploiter Docker dans un contexte d’intégration continue (CI / CD)
- Utiliser et créer ses propres images personnalisées
- Paramétrer, déployer, automatiser, et standardiser les environnements
- Gérer ses conteneurs et la sécurité des environnements en maîtrisant les ressources système
- Créer des réseaux sécurisés et isolés, afin de protéger ses données sensibles
- Gérer ses volumes : statiques, bind
- Publier ses services sur le réseau
- Gérer les variables ARG et ENV, et les secrets
- Utiliser les formats pour filtrer les informations
- Orchestrer ses conteneurs dans des machines virtuelles
- Utiliser des interfaces graphiques (Portainer, Netdata…)
- Assurer la haute disponibilité, et la montée en charge (scalability) via swarm
- Utiliser les HealthCheck pour auditer l’état de santé des conteneurs
- Acquérir une autonomie sur Docker.
Pré-requis : aisance sur les systèmes Linux et l’éditeur VI
Publics : Administrateur / ingénieurs systèmes / réseaux, DevOps - Développeurs, Lead dev. - Responsable de pôle technique, CTO - Scrum master, Chefs de projets infrastructures
Méthodes mobilisées : Alternance d’apports théoriques et d’exercices de mise en application pratique.
Modalités et délais d’accès : Sur inscription préalable au minimum 1 semaine avant le début de la formation selon disponibilité du formateur.
Modalités d’évaluations : Une évaluation du niveau des stagiaires est réalisée avant l’entrée en formation par téléphone ou au moyen d’un questionnaire. Évaluation des acquis et de la satisfaction en fin de formation.
Accessibilité aux personnes en situation de handicap : toutes nos formations sont accessibles aux personnes en situation de handicap, qu’il soit moteur, visuel, auditif ou cognitif ; quelles qu’en soient les particularités.
Nous pouvons proposer des solutions de compensation de nos prestations en adaptant les moyens pédagogiques, techniques et d’encadrement. Nos locaux sont en rez-de-chaussée avec des places de parkings extérieures juste devant l’entrée du bâtiment. Aussi, merci de nous informer de vos besoins d’adaptation ; les échanges peuvent se faire et rester en toute confidentialité.
Taux de satisfaction 2i2l : 90% des stagiaires sont "très satisfaits", "satisfaits" ou "plutôt satisfaits" à l’issue de leur formation. La durée de la formation est conseillée sur 3 jours plutôt que 2 initialement.
Tarif : pour une demande de formation interne, nous consulter

Présentation

Docker est un logiciel libre qui automatise le déploiement d’applications dans des conteneurs logiciels [1].

- le site officiel de Docker
- la forge de Docker
- la licence Docker Apache 2.0
- les licences des applications Docker
- Card du landscape cncf.io
- l’article Wikipédia

Programme

Introduction
- Contexte agile
- Devops
- La sécurité avec devsecops
- Cattle not pets

Installation
- Procédure
- Installation manuelle
- Installation via un script
- Post-installation

Premiers pas
- Aperçu des commandes
- Installation d’un conteneur
- Récupération de l’image
- Création d’un conteneur
- Démarrage de conteneurs
- Arrêt / suppression de conteneurs / images
- Copie de fichiers
- Paramètres de démarrage
- Modification des caractéristiques

Images & layers & containers
- Modèle en couches
- Pilotes et systèmes de fichiers
- Conversion d’un conteneur en image
- Options de conversion
- Archivage d’une image
- Gestion des images
- Utilisation de dépôt

Dockerfile
- Les principales commandes
- Multi staged builds
- Git
- Supervisord
- Exercice
- Security by default
- Privacy by design
- Accountability

Volumes
- Création d’un volume
- Création à la volée
- Droits sur les conteneurs
- Gestion des volumes
- Bind et tmpfs
- Montage d’un répertoire sur l’hôte
- Montage bind d’un fichier sur l’hôte
- Montage bind avec docker-compose
- Montage d’un volume dans la mémoire vive

Docker-compose
- Docker-compose.Yml
- Docker-compose + dockerfile
- Arrêt et désinstallation

Les outils d’adminitration
- Portainer
- Netdata
- Ctop
- Lazydocker

Healthcheck
- Ligne de commande
- Dockerfile
- Docker-compose
- Service apache
- Service postgresql
- Service mariadb
- Service mysql
- Service redis
- Service ssh
- Annuaire openldap

Les variables arg, env et les secrets
- Arg
- Dockerfile
- Docker-compose
- Env
- Docker run
- Dockerfile & entry point
- Les fichiers d’environnements
- Les secrets

Les reseaux
- Créer un réseau
- Réseau host
- Réseau classique (bridge)
- Réseau internal
- Création à la volée
- Réseau overlay
- Réseau none
- Ip fixes
- Dans un réseau existant
- Dans un nouveau réseau

Les formats

Securite
- Namespace
- Principes
- Exemples
- Cgroups
- Ressources en mémoire vive
- Ressources processeur
- Docker-compose
- Linux capabilities
- Les privilèges
- Le mode privilégié

Notes

[1Source Wikipédia