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 ou présentant des difficultés d’apprentissage : nous pouvons proposer des solutions de compensation de nos prestations en adaptant les moyens pédagogiques, techniques et d’encadrement (les précisions).
Taux de satisfaction 2i2L : 96,34 % des stagiaires sont satisfaits à l’issue de leur formation.
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