Introduc*on au « Docker » Un conteneur Linux, qu'est-ce que c'est ? • Un conten
Introduc*on au « Docker » Un conteneur Linux, qu'est-ce que c'est ? • Un conteneur Linux est une enveloppe virtuelle qui permet de packager une application avec tous les éléments dont elle a besoin pour fonctionner : • fichiers source, runtime, librairies et dépendances. • Les conteneurs sont isolés du reste du système. Ils sont packagés en un ensemble cohérent et prêt à être déployé sur un serveur et son OS. • portables et fonctionnent de la même manière dans les environnements de développement, de test et de production. • déplacer l’application jusqu'en production sans aucun effet secondaire. 05/03/20 2 Conteneurs versus machines virtuelles 05/03/20 Wajdi LouaA - EISINT 2012 3 05/03/20 4 Conteneurs versus machines virtuelles • La virtualisation permet aux systèmes d'exploitation (Windows ou Linux) de s'exécuter simultanément sur un seul système matériel. • Les conteneurs partagent le même noyau de système d'exploitation et isolent les processus de l'application du reste du système. • n'installe pas d'OS à proprement parler, mais un rootfs (le / d'un unix/Linux) qui est appelé image, qui contient les bibliothèques et les binaires nécessaires 05/03/20 5 Avantages et inconvénients des conteneurs • Avantages • Créer un conteneur est vraiment plus rapide que lancer une VM. • Mais une VM offre une meilleure isolation. • Les images de conteneurs Linux permettent d'assurer la portabilité et le contrôle des versions des applications. • Les développeurs ont ainsi la garantie que ce qui fonctionne sur leur ordinateur fonctionnera aussi dans l'environnement de production. • Un conteneur Linux mobilise moins de ressources qu'une machine virtuelle. • Inconvénients • doivent être compatibles avec le système sous-jacent => ce n'est pas cross-platform. • les OS Linux ARM exécutent des conteneurs Linux ARM, les OS Linux x86 exécutent des conteneurs Linux x86 et les OS Windows x86 exécutent des conteneurs Windows x86. 05/03/20 6 Qu'est-ce que Docker ? • Docker est un outil qui peut empaqueter une application et ses dépendances dans un conteneur virtuel, qui pourra être exécuté sur n'importe quel serveur Linux. • Docker étend le format de conteneur Linux standard, LXC, avec une API de haut niveau fournissant une solution de virtualisation qui exécute les processus de façon isolée. 05/03/20 7 Docker, pour quoi faire ? • Le déploiement : puisque Docker a pour vocation de conteneuriser des applications, il devient simple de créer un conteneur pour une application, et la dispatcher. • Un conteneur qui fonctionne sur une machine avec une distribution X, fonctionnera sur une autre machine avec une distribution Y. • Le développement : cela permet de facilement avoir le même environnement de développement qu'en production. • Cela permet également de pouvoir sur la même machine, tester avec plusieurs versions d'un même logiciel. • Installer des applications : étant donné que Docker propose une multitude d'outils, il est facile et rapide d'installer une application: • bien souvent une seule ligne de commande suffit pour avoir par exemple notre nextcloud fonctionnel. 05/03/20 8 Docker : structure et foncAons • La plateforme open source repose sur trois composants de base : pour faire fonctionner les conteneurs, les utilisateurs ont simplement besoin du • Docker-Image • Docker-Hub • Docker-Engine (Moteur Docker) 05/03/20 9 Image Docker • Tout comme les machines virtuelles, les conteneurs Docker sont basés sur des images. • Une image est un modèle en lecture seule qui conAent toutes les instrucAons dont le moteur Docker a besoin afin de créer un conteneur Docker. • Une image portable d’un conteneur est décrite comme image Docker sous la forme d’un fichier texte, on parle alors d’un Dockerfile. • Si un conteneur doit être démarré sur un système, un paquet avec l’image correspondante est chargé en premier, si elle n’existe pas localement. L’image chargée fournit le système de fichiers requis pour l’exécuAon, y compris tous les paramètres.. 05/03/20 10 Qu'est-ce que le docker Hub ? • Le Docker-Hub est un registre basé sur le Cloud pour les référenAels (dépôts) de logiciels, en d’autres termes une sorte de bibliothèque pour les images Docker. – un store ou les uAlisateurs de docker peuvent partager leurs images. • Plusieurs images sont disponibles (des images de base et des images préconfigurées) – Les images de base officielles ont été créées par l'équipe de développement de docker. • Le service en ligne est divisé en un espace public et un espace privé. – L’espace public offre aux uAlisateurs la possibilité de télécharger leurs propres images et de les partager avec la communauté. – Les images téléchargées dans une zone privée du registre ne sont pas accessibles au public et peuvent, par exemple, être partagées au sein de l’entreprise ou avec des amis et des connaissances. • Il est accessible via : heps://hub.docker.com 05/03/20 11 Qu'est-ce que le docker Hub ? Le nom de l'image => Généralement sous la forme USER/IMAGE_NAME, sauf dans le cas d'une image officielle, où c'est seulement IMAGE_NAME Le nombre de stars => Le système de notation Le nombre de pulls => Le nombre de téléchargements 05/03/20 12 Docker-Engine • Le cœur du projet Docker est le moteur Docker (Docker-Engine). Il s’agit d’une applicaAon client-serveur open source, dont la version actuelle est disponible pour les uAlisateurs sur toutes les plateformes établies. • L’architecture de base du Docker-Engine peut être divisée en trois composants : – Daemon avec des foncAons serveur, • Le daemon docker s’exécute en arrière-plan sur le système hôte et sert à contrôler le moteur Docker de manière centralisée. Dans ceee foncAon, il crée et gère toutes les images, conteneurs ou réseaux. – Interface de programmaAon (API) basée sur le paradigme de programmaAon REST • le REST-API spécifie un ensemble d’interfaces qui permeeent à d’autres programmes de communiquer et de donner des instrucAons au daemon Docker. – Terminal du système d’exploitaAon (Command-Line Interface, CLI) comme interface uAlisateur (client). • Il interagit avec le daemon via l’API REST et permet aux uAlisateurs de le contrôler grâce aux scripts ou aux entrées uAlisateur. 05/03/20 13 Architecture Docker - Docker permet aux utilisateurs de démarrer, d’arrêter et de gérer les conteneurs logiciels directement à partir du terminal (client). - Le daemon (serveur) est adressé à l’aide de la commande Docker et d’instructions comme build (créer), pull (télécharger) ou run (démarrer). - La commande docker build indique au Docker-Daemon de créer une image (ligne pointillée) à partir d’un Dockerfile - La commande docker pull (ligne pointillé) permet de télécharger l’image à partir d’un référentiel dans le Docker-Hub 05/03/20 14 Ges*on des images et des conteneurs Télécharger Docker-Images • Vous trouverez l’image whalesay en vous rendant sur la page d’accueil de Docker Hub et en tapant whalesay dans la barre de recherche à droite du logo de Docker. • Dans les résultats de la recherche, cliquez sur la ressource docker/whalesay pour accéder au Repository public de ceee image. 05/03/20 16 Télécharger Docker-Images • Dans la zone d’en-tête de la page, les uAlisateurs trouveront le nom de l’image, la catégorie du Repository et l’heure du dernier téléchargement (last pushed). 05/03/20 17 • Short DescripAon : courte descripAon de la ressource • Full DescripAon : descripAon complète, généralement accompagnée d’un mode d’emploi • Docker Pull Command : ligne de commande pour télécharger l’image depuis le Repository (pull) • Owner : informaAons sur le créateur du Repository • Comments : zone de commentaires en bas de page Télécharger Docker-Images • Pour télécharger une image, uAlisez la commande docker pull selon le schéma de base suivant : – $ docker pull [OPTIONS] NAME [:TAG|@DIGEST] • La commande docker pull indique au daemon de charger une image à parAr du Repository. • Vous déterminez l’image en spécifiant le nom de l’image (NAME). • Indiquer au Docker comment exécuter la commande souhaitée (OPTIONS). • La spécificaAon des tags (:TAG) et des numéros d’idenAficaAon uniques (@DIGEST) permeeent de télécharger une version spécifique d’une image. • Exemple: $ docker pull docker/whalesay – Remarque: Si vous souhaitez démarrer un conteneur, le daemon Docker télécharge automaAquement les images du référenAel qu’il ne trouve pas sur le système local. 05/03/20 18 Afficher toutes les images du Docker sur le système local • Si vous n’êtes pas sûr d’avoir déjà téléchargé une image spécifique, vous pouvez charger une vue d’ensemble de toutes les images sur votre système: – $ sudo docker image ls • La commande docker image donne tout sur les images locales, y compris la taille du fichier, la balise et l’ID de l’image. – Lorsque vous démarrez un conteneur, l’image sous-jacente est téléchargée sous forme de copie à parAr du référenAel et stockée de façon permanente sur votre ordinateur. – Un nouveau téléchargement n’est lancé que si la source de l’image change, par exemple si une version plus récente est disponible dans le référenAel. • Pour supprimer une image: $ docker image rm [nom ou ID Image]:[tag] 05/03/20 19 Démarrer Docker-Images en tant que conteneurs • Pour démarrer une image du docker, uAlisez la commandedocker run selon le schéma de base suivant : – $ docker run [OPTIONS] IMAGE [:TAG|@DIGEST] [CMD] [ARG...] • La seule parAe obligatoire de la commande docker run uploads/Industriel/ cours-docker-2020.pdf
Documents similaires










-
36
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mar 14, 2022
- Catégorie Industry / Industr...
- Langue French
- Taille du fichier 1.8335MB