L’environnement

Docker est le leader de la conteneurisation, il offre la possibilité de créer et de partager des images, de gérer et de sécuriser des conteneurs.
Le déploiement d’application est à l’interface entre le métier d’administrateur systèmes et réseaux et celui de développeur. Les avancées dans le domaine de la conteneurisation permettent aujourd’hui de relier ces deux mondes et apportent de nouvelles possibilités : isolation accrue des briques logiciels, chaîne de mise en production automatisée, reproductibilité et versionnage de l’intégralité de l’environnement, passage à l’échelle cloud…

Objectifs pédagogiques

À l’issue de la formation, les stagiaires seront capables de :

  • Comprendre les enjeux de la conteneurisation : apprendre l’historique de la conteneurisation, comprendre les différences avec la virtualisation et les raisons pour lesquelles la conteneurisation est souvent préférée
  • Comprendre les mécanismes de la conteneurisation et comment elle permet l’isolation et le partage de ressources
  • Manipuler une image et lancer un container
  • Connaître les bonnes pratiques
  • Savoir concevoir et écrire un docker-compose pour le déploiement d’applications utilisant plusieurs conteneurs.

Public concerné

Administrateurs systèmes et réseaux, développeurs.

Prérequis

  • Linux : bases de l’administration d’un système (arborescence, fichiers de configuration, services).
  • Bash : commandes de base, écriture d’un script simple.
  • Réseau : bases de TCP/IP (adressage, ports, routage).
  • Architecture d’une application fullstack simple (proxy, backend, frontend, base de données).

Un questionnaire de pré-formation est proposé pour valider l’adéquation entre le besoin et la formation.

Programme de la formation

Découverte de Docker (jour 1)

  • Présentation de Docker :
    – Histoire
    – Comparaison avec la virtualisation
    – Fonctionnement
    – Intérêt
  • Manipulation de conteneurs (gestion du cycle de vie)
  • Image Docker et Dockerfile :
    – Concepts clés de la notion d’image
    – Conception d’image simple
    – Partage d’image avec un registre (Docker Hub ou
    registre privé)

Conteneurisation d’une application (jour 2)

  • Communication avec l’extérieur (réseau, volumes)
  • Application multi-conteneurs et Docker Compose

Conteneurisation d’une application multi-conteneurs (jour 3)

  • En partant d’une page blanche, quelle démarche pour conteneuriser une application multi-conteneurs (backend / frontend / base de données / proxy) ?
  • Présentation d’outils de l’écosystème Docker (portainer, traefik…)
  • Lien avec GitLab (versionnage, registre GitLab, CI / CD)
  • Bonnes pratiques