Composante
Faculté des sciences, Service commun d'alternance et de formation professionnelle
Présentation
Docker est un logiciel qui permet d’automatiser la création et le déploiement de conteneurs logiciels. Docker permet d’empaqueter une application et ses dépendances dans une image Docker. Un conteneur Docker est considéré comme l’instanciation d’une image Docker et permet ainsi à l’application empaquetée de s’exécuter sur une machine hôte dans un environnement isolé. Une telle application peut être ainsi déployée automatiquement sur n’importe quelle machine disposant du logiciel Docker. Il y a toutefois une dépendance au système d’exploitation hôte : une application conteneurisée pour Windows ne s’exécutera pas sur un hôte Linux et inversement. Cette formation traitera uniquement de la conteneurisation dans des environnements linux. La grande force des conteneurs logiciels est de pouvoir déployer automatiquement des environnements d’exécution isolés avec des performances quasiment natives à l’hôte, et sans gaspillage de mémoire vive. C’est en cela que cette technologie est disruptive par rapport aux systèmes classiques de virtualisations lourdes (Xen, KVM, VMWare).
Objectifs
A l’issue de la formation les stagiaires auront compris les mécanismes fondamentaux de la conteneurisation avec Docker et auront acquis les connaissances et compétences suivantes :
- Comprendre la différence entre une machine virtuelle, une image et un conteneur logiciel (chroot, LXC, lib-containers)
- Comprendre la structure d’une image: système en couches, mécanisme COW (copy on write)
- Comprendre les bases de la gestion du réseau par Docker
- Comprendre les différentes philosophies d’utilisation de Docker et connaître les patrons de conception associés
- Être capable de créer des images et déployer des conteneurs (Docker CLI, Dockerfile, Composefile)
- Gérer les persistances des données d’un conteneur à l’autre (commit et utilisation des volumes)
- Utiliser les différents outils de l’écosystème Docker (Docker-compose, Docker-swarm).
Pendant la formation, nous étudierons à travers la réalisation de travaux pratiques, la création et le déploiement d’une image WordPress.
Programme
Jour 1
Matin
- Présentation succincte des principales différences entre la virtualisation et la conteneurisation
- Présentation des différents types de conteneurisations et leurs cas d’usage
- Mini-tp chroot : prémisses d’un conteneur
- Installation de Docker
Après-midi
- Présentation détaillée des mécanismes fondamentaux de Docker (images, conteneurs, couches, philosophie)
- Introduction aux règles de sécurité de bases et à la mise en place de la persistance des données
- Mini-tp en parallèle de la présentation
Jour 2
Matin
- Introduction au Dockerfile permettant une révision des concepts fondamentaux étudiés la veille
- Usages et bonnes pratiques
- Tp-td : de Dockerfile à Docker swarm en passant par Docker compose (cas étudié : conteneurisation d’un site wordpress)
Après-midi
- Tp-td : de Dockerfile à Docker swarm en passant par Docker compose
Jour 3
Matin
- Tp : de Dockerfile à Docker swarm en passant par Docker compose
Après-midi
- Tp-td : de Dockerfile à Docker swarm en passant par Docker compose --> Introduction à Docker-swarm (modulo accessibilité au site play-with-Docker), présentation d’outils permettant d’aller plus loin de manière autonome
- Évaluation de la formation
Organisation
- Durée : 21 heures sur 3 jours
- Calendrier : les 14, 15 et 16 novembre 2018
- Lieu de formation : UFR Sciences Université d’Angers - Campus de Belle Beille (dans une salle informatique)
- Intervenant : Jean-Mathieu Chantrein, Ingénieur d’études LERIA et Responsable du centre de calcul du LERIA
- Matériel : venir avec un pc portable (si possible récent) avec connexion WiFi, avec virtualbox (version 5.0 ou +) et une distribution Ubuntu 16.04 LTS Desktop (graphique) installée et upgradée dans une VM. La VM sera «snapshotée» avant le début de la formation. Les processeurs du pc doivent fournir la technologie vt-d ou amd-v.
Admission
Conditions d'admission
- Être titulaire d’un Bac+3 scientifique ou équivalent
- Être à l’aise avec l’environnement GNU/Linux en ligne de commande
- Connaissances de bases en système et réseaux
Public cible
- Administrateurs systèmes / réseaux
- Développeurs logiciels
- Ingénieurs DevOps
- Chercheurs (dans le cadre d’une démarche de recherche reproductible)
Droits de scolarité
Coût de la formation : 1000 euros (repas compris)
Non éligible au CPF