bienvenue à tous pour cette nouvelle vidéo je suis Aicha ingénieur devvops aujourd'hui je vais vous parler de dock un outil incontournable pour comprendre ce que c'est docar explorons ensemble cet exemple imaginons que nous développons une application web de boutique en ligne qui comporte les composants suivants frontend développé avec no JS backend développé avec Java le cach qui est géré par edis une base de données post gré par exemple et des fils d'attente de messages géré par rabbit MQ au démarrage du projet chaque développeur va configurer son environnement de développement local qui inclut toutes ces technologies
installer le JDK pour Java télécharger et installer NodeJS depuis le site officiel de NodeJS télécharger et installer postgé redis et Rabit MQ cependant cette approche manuel présente plusieurs défis l' installation manuelle de chaque composant peut être complexe et prend beaucoup de temps ce qui peut ralentir le démarrage des projets en plus chaque développeur doit suivre plusieurs étapes d'installation et de configuration ce qui augmente le risque d'erreur et si les développeur installe des versions différentes de Java de NodeJS redis ou de rabbit MQ cela peut causer des problèmes de compatibilité une fois l'environnement de développement est
configuré les développeurs écrivent et testent leur code localement une fois que le code il est prêt pour le déploiement les développeurs génèent des artiffacts tels que des jar pour des applications Java des bundles pour les applications NodeJS ainsi de suite les développeurs rédigent ensuite les documents détaillant les étapes à suivre pour déployer l'application puis envoie les artefacts et la documentation à l'équipe opérationnelle en charge du déploiement une fois l'application déployée les équipes effectu tests pour s'assurer que tout fonctionne correctement et ce dans chaque environnement cette approche traditionnel cause plusieurs problèmes le premier c'est la difficulté
de collaboration en effet la communication entre les équipes développement et opération peut être difficile ce qui peut entraîner des erreurs lors du déploiement en plus ce processus manuel de transfert des artefacts peut prendre beaucoup de temps ce qui peut ralentir le déploiement de l'application autre problème lié à l'installation des composants de l'application localement c'est le conflit de version imaginons que notre application a nécessite la base de données postgr 9.6 alors qu'il y a une autre application qui tourne sur le même serveur mais qui nécessite la base postgré 13 gérer deux bases de données locales avec
deux versions différentes peut être complexe et source de conflit liés au port et à la configuration on voit clairement que le fait d'installer l'application avec ces dépendances localement n'est pas du tout une bonne approche donc quelle est la solution la solution consiste à isoler chaque application avec ses dépendances et créer des environnements de travail préconfigurés et prêt à l'emploi ceci va garantir que chaque application fonctionne de manière cohérente et sans conflit quel que soit l'environnement et les développeurs peuvent uniquement exécuter une simple commande pour que leur environnement soit prêt ce qui permettra de simplifier considérablement
le déploiement des applications dans différents environnements cela revient à utiliser des containir et l'outil le plus connu dans ce cadre c'est doker la question qui se pose qu'est-ce qu'un containire un container c'est une unité logiciel qui encapsule une application avec toutes ses dépendances tout ce dont elle a besoin pour être exécuté ce qui simplifie considérablement la création et le déploiement des applications l'outil le plus connu dans ce cadre c'est docker qui est juste une plateforme Open Source qui permet de créer et exécuter et gérer ses containers comment un containner est créé un containner est créé
en se basant sur une image d'cker mais qu'est-ce qu'une image dokerer et quelle est la différence entre un containnaire et une image une image c'est un modèle qui contient les instructions pour la création d'un containire compris le code source de l'application les bibliothèques et les dépendances nécessaires les fichiers de configuration les variaable d'environnement et tous les outils qui sont nécessaires à l'exécution de l'application et si vous démarrez cet image vous aurez un containire en cours d'exécution de cet image vous pouvez donc avoir plusieurs containir en cours d'exécution provenant de la même image donc un containur
n'est donc qu'une instance en en cours d'exécution d'une image une image dokerer est créée en utilisant un fichier qui s'appelle un docker file mais qu'est-ce qu'un docker file c'est juste un fichier texte qui contient une série d'instructions pour assembler une image docker voici un exemple simple de docker file pour une application NodeJS en utilisant ce fichier vous pouvez construire une image docer contenant tout le nécessaire pour exécuter votre application NodeJS en utilisant uniquement la commande docker build une fois votre image est créée il faut utiliser la commande docal run pour créer et démarrer un nouveau
container à partir de cette image la syntaxe générale est la suivante dock run- name et je mets le nom du containire suivi du nom de l'image une fois l'image dokerer éc créé et les stocké en local c'est-à-dire uniquement sur la machine où j'ai buildé l'image mais comment d'autres développeurs vont pouvoir l'utiliser pour partager l'image docker avec d'autres développeurs il est important de la pousser soit dans un registre docker qui peut être privé ou public un registre d'kerer c'est un service qui stock et distribue des images d'cker on a deux types de registrees un registre privé
ou un registre public le registre privé est restreint à des utilisateurs et des organisations spécifiques donc uniquement les utilisateurs authentifiés peuvent avoir l'accès aux images on prend comme exemple de registre privé Azure container registry par contre un registre public est un registre accessible à tout le monde on prend comme exemple le docker hob quelles sont les commandes de base à savoir quand vous travaillez avec la première commande importante c'est dockar PS qui nous permet de lister les containerses qui sont en cours d'exécution a ensuite docker stop pour arrêter un container docker image ls pour lister
les images docker RM pour supprimer un containire docker logs pour lister les logs d'un containire c'est tout pour cette vidéo j'espère que cette vidéo vous a aidé à mieux comprendre docar et son son fonctionnement si vous avez des questions ou des suggestions n'hésitez pas à les laisser dans les commentaires ci-dessous n'oubliez pas de vous abonner pour ne pas manquer mes prochaines vidéos sur d'autres sujets passionnants merci d'avoir regardé la vidéo jusqu'à la fin et à très bientôt