Gildas Garcia
Développeur chez Marmelab
Développeur chez marmelab
Récupérer le projet lui même
Installer les différentes librairies/outils nécessaires
Attention aux versions !
Cohabitation des différentes versions des librairies/outils
Difficultés pour passer d'une application à l'autre
Multiples APIs (Microservices)
Nombreux services (Mongo, Redis, Elasticsearch, etc.)
Plusieurs frontends
Une plateforme de virtualisation par conteneurs
Performances natives
Isolation des conteneurs
Instantané d'un système d'exploitation
Une image peut hériter d'une autre: composition
Facilité de mutualisation
Instance active d'une image
Isolé de l'hôte (mais peut fournir des services: application, base de données, etc)
Isolé des autres conteneurs (mais peut communiquer avec eux)
Accès limité et configurable aux resources de l'hôte
Mise en place d'environnements isolés
Architecture en microservices facilitée
Déploiements simplifiés ?
Gestion de multiples images
Plusieurs commandes à lancer pour exécuter tous les conteneurs nécessaires à une application.
Définit et exécute des applications composées de plusieurs conteneurs
Permet de mettre en place un environnement complet en une commande
Un fichier de configuration en YAML définissant chaque conteneur et ses liens avec les autres conteneurs
docker-compose up
docker-compose ps
docker-compose stop
Utiliser des images de base optimisées telles qu'Alpine pour réduire la taille des vos images
Eviter de lancer plusieurs commandes séparées dans un DockerFile: préférer les &&
Chaque commande crée une version de l'image: espace disque !
Conteneurs stateless: monter des volumes pour la persistence des données.
Docker supprime les volumes non utilisés.
Centraliser les logs avec syslog et éventuellement docker-syslog (Logly)
By Gildas Garcia