## Simplifiez vos déploiement avec la conteneurisation Nathan Tien You --- ## Sommaire - Introduction à la conteneurisation - Docker - Principes clés - Conteneurs - Images - Orchestration - Exemples d'applications --- ## Nathan Tien You - Ingénieur spécialité informatique - Développeur fullstack - Home Server : - Proxmox - Docker - Gitea actions - Amateur de jeux de deckbuilding --- ## Problématiques liées à la virtualisation - Gourmand (Mémoire, processeur, disque dur) - Installation lourde - Mises à jour et maintenance - Système d'exploitation - Outils de supervision - Dépendances / prérequis --- ## Infrastructure as code - Automatisation - Fiabilité - Efficacité - Contrôle des versions - Autodocumenté - Immutabilité --- ## Virtualisation du service  --- ## Différents types de conteneurisation - Conteneurs Processus - Docker - Podman - Conteneurs Machine - LXC - LXD --- ## Conteneurs Contexte d'éxecution isolé : chroot --- ## Base du conteneur : image - Point d'entrée (exécutable) - Variables d'environnement - Ports --- ## Registres d'images  --- ## Lancement d'un conteneur ```bash docker run \ -it --rm \ -v /tmp:/usr/local/apache2/htdocs/ \ -p 8000:80 \ httpd:latest ``` ---- --- ## Bonnes pratiques Docker - Conteneurs éphémères - Processus stateless - Architecture Shared-nothing - Images minimales - Installer uniquement le nécessaire - Séparer compilation et mise en production --- ## Construction d'une image ```Docker dockercompose FROM node:lts-alpine3.20 WORKDIR /app COPY package.json ./ COPY package-lock.json ./ COPY index.js ./ RUN npm ci CMD ["node", "index.js"] ```  ```bash docker buildx build . -t demo:latest ``` ---- --- ## Orchestration - Automatisation du déploiement - Horizontal Scaling - Nombreuses platformes - Kubernetes - Docker Compose - OpenShift ---