0% ont trouvé ce document utile (0 vote)
87 vues22 pages

Chapitre Docker

Le document présente Docker comme une solution pour résoudre les problèmes de déploiement d'applications en utilisant des conteneurs, permettant ainsi une meilleure portabilité et cohérence entre les environnements. Il explique également l'architecture de Docker, les différences entre images et conteneurs, ainsi que les avantages de l'utilisation d'images Docker. Enfin, il souligne comment Docker contribue à instaurer une culture DevOps en simplifiant le processus de déploiement pour les développeurs et les administrateurs systèmes.

Transféré par

medbenfraj00
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
87 vues22 pages

Chapitre Docker

Le document présente Docker comme une solution pour résoudre les problèmes de déploiement d'applications en utilisant des conteneurs, permettant ainsi une meilleure portabilité et cohérence entre les environnements. Il explique également l'architecture de Docker, les différences entre images et conteneurs, ainsi que les avantages de l'utilisation d'images Docker. Enfin, il souligne comment Docker contribue à instaurer une culture DevOps en simplifiant le processus de déploiement pour les développeurs et les administrateurs systèmes.

Transféré par

medbenfraj00
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université de Tunis

Institut Supérieur de Gestion de Tunis

Master professionnel ESE 2023-2024 SEMESTRE 2

DOCKER
Module : Advanced Software Engineering

Enseignante : Pr. Lamia Labed Jilani


[email protected]
Problèmes de déploiement des applications
• Pour une application utilisant différentes
technologies (services), des problèmes sont
posés au moment du déploiement en
production.
• Compatibilité des applications avec les OS
• Installer les dépendances et les librairies requises
avec les bonnes versions pour chaque service.
• Installer les différents environnements :
• Dev
• Test
• Prod
• Ce qui prend beaucoup de temps pour
déployer les applications.
• Avec des conflits entre les développeurs et les
opérationnels (Administrateurs Systèmes)
Solution : conteneurs d’applications
• Embarquer les applications dans
des conteneurs.
• Exécuter chaque service avec ses
propres dépendances dans des
conteneurs séparés.
Pourquoi utiliser les containers ?
• Meilleurs performances que les VM (Démarrage instantané).
• Portabilité d’un environnement à l’autre (Multi cloud).
• Cohérence entre les environnements Dev, Test et Prod.
• Permet de modulariser facilement l’application.
• Gérer l’héritage technique (Ancienne application) grâce à l’isolation.
C’est quoi Docker ?

Docker permet de créer des environnements (appels containers) de manière à isoler


des applications.
Il permet d’empaqueter une application ainsi que les dépendances nécessaires dans
un conteneur virtuel isolé qui pourra être exécuté sur n’importe quelle machine
supportant docker.
Docker est un logiciel libre qui permet le déploiement d’applications sous la forme de
conteneurs logiciels.
L’origine de docker est :
Au départ, société française et maintenant basée à San Francisco.
dotCloud : un PaaS avec un container engine écrit en python.
En 2012 : Réécriture le langage GO.
Réaction très positive de la communauté.
dotCloud change de nom pour Docker.
En 2014, Levée de fonds : 40 millions $.
En 2015 , Levée de fonds : 95 millions $.
-Chef est un logiciel libre de gestion de configuration écrit en Ruby
-JenkinsIl permet de tester et de signaler en temps réel des modifications isolées dans un code de grande
ampleur. Ce logiciel permet aux développeurs de rechercher et de résoudre rapidement les anomalies,
ainsi que d'automatiser les tests de leurs builds. L'intégration continue a évolué depuis sa conception.
-Vagrant est un logiciel anciennement libre et open-source pour la création et la configuration des
environnements de développement virtuels.
Architecture globale Docker
• Le développeur crée un fichier Dockerfile contenant les commandes que
docker va exécuter pour construire une image docker de cette application.
• $ docker build
• L’image docker contient tout ce dont l’application a besoin pour s’exécuter
correctement.
• $ docker push image_name
• Pour télécharger une image docker d’une application dans Host Docker, il
suffit d’utiliser.
• $ docker pull image_name
• La création et l’exécution d’un conteneur d’une application se fait par
instanciation et exécution de l’image en utilisant :
• $ docker run image_name
• Avec docker run, si l’image n’existe pas dont le host, elle va procéder au
téléchargement celle-ci d’ne créer et exécuter un conteneur docker.
• Docker se compose de :
• Docker Engine qui perlet de créer le Host Docker sur une mahcine Linux (Docker
daemon).
• Un client Docker qui peut se trouver dans n’importe quelle autre machine et qui
est connecté à Docker Engine via différents connecteurs par dockerd (socket, REST
API, ets.)
Docker => Docker Hub
Image vs Container
• Une image docker est juste un fichier package représentant la
Template des conteneurs. Elle définit la structure du conteneur en
englobe l’application containérisée de ses dépendances.
• Un Conteneur représente une instance d’une image. Un conteneur
est exécuté par le Docker Host. Ce qui implique l’exécution de
l’application qu’il transporte dans un environnement isolé fourni par
le conteneur.
Docker contribue à instaurer la culture
DevOps
• Sans Docker :
• Le développeur
• Développe l’application.
• Génère le package de l’application à déployer (App war)
• Envoie à l’opérationnel (Administrateur système)
• App war
• Un descriptif des dépendances qu’il faut installer et configurer pour que l’application
s’exécute normalement.
• L’opérationnel
• Doit se débrouiller pour satisfaire les exigences de l’application.
• Pour chaque mise à jour, c’est toujours les mêmes histoires qui se répètent.
• Ce qui rend la vie dur au administrateur systèmes (Opérationnels).
• Ce qui crée beaucoup de conflits entre les développeurs qui tentent d’améliorer
constamment les applications et les opérationnels qui doivent redéployer les
mises à jour.
• Avec Docker :
• Le développeur
• Développe l’application
• Construit une image docker de son application contenant toutes les dépendances sont
l’application a besoin.
• Publie l’image docker dans le registre docker.
• L’opérationnel déploie l’application en instanciant à partir de l’image docker
récupérée à partir du repository docker.
Commandes de base docker : run et ps
Une image Docker est un fichier exécutable léger, portable et autonome qui contient
tout ce dont vous avez besoin pour exécuter une application : code, runtime, outils
système, bibliothèques système et paramètres.
Les images Docker sont constituées de plusieurs couches, chaque couche représentant une étape
du processus de construction de l'image. Par exemple, la couche inférieure peut contenir le
système d'exploitation de base, la couche suivante peut contenir les bibliothèques d'applications et
la couche supérieure peut contenir l'application elle-même.
Les images Docker sont utilisées pour créer, déployer et exécuter des applications dans des
conteneurs. Les conteneurs sont une forme de virtualisation qui vous permet d'exécuter des
applications de manière isolée les unes des autres et du système d'exploitation hôte.
Les avantages de l'utilisation d'images Docker incluent :
 Portabilité : Les images Docker peuvent être exécutées sur n'importe
quel système d'exploitation prenant en charge Docker.
 Efficacité : Les images Docker partagent les couches entre elles, ce qui
réduit la taille des images et l'espace disque requis.
 Cohérence : Les images Docker garantissent que votre application
s'exécutera de la même manière sur tous les environnements.
 Facilité d'utilisation : Les images Docker peuvent être facilement
créées, déployées et gérées à l'aide d'outils Docker.
Si vous recherchez un moyen de créer, de déployer et d'exécuter des
applications de manière portable, efficace et cohérente, alors Docker images
valent vraiment le détour."'

Vous aimerez peut-être aussi