Docker Imane chlioui Introduction Il permet d’automatiser le déploiement d’appl

Docker Imane chlioui Introduction Il permet d’automatiser le déploiement d’applications et de leurs dépendances dans différents conteneurs isolés. Il a été développé par Solomon Hykes à la base comme projet interne de DotCloud en tant qu’évolution de solutions open-source déjà existantes au sein de la société. Docker a été distribué en open-source la première fois le 13 mars 2013. Début 2017, il y a 1600 contributeurs sur le Github de l’application. Lexique Conteneur : Image exécutable d’un environnement complet incluant code, librairies, outils et configuration Image : template de conteneur en read-only contenant un systeme de base et une application. Docker HUB : Dépôt public d’images mises à disposition par Docker DockerHub (https://store.docker.com) Dockerfile : fichier texte de description d’une image Lexique Docker Compose : fichier texte (yaml) de description d’un ensemble de conteneurs Docker Machine : Outil de déploiement des hôtes Docker sur différentes plateformes (Mac, Windows) : https://docs.docker.com/machine/overview/ (https://docs.docker.com/machine/overview/) Orchestrateur : gère un pool de ressources serveurs ( Swarm, Kubernetes, Mesos, Rancher…) Registry : Dépôt privé d’images Docker Docker Il s’agit d’une plateforme logicielle open source permettant de Créer, Déployer Gérer des containers d’applications virtualisées sur un système d’exploitation. Chaque container exécuté partage les services du système d’exploitation. Initialement créé pour fonctionner avec la plateforme Linux, Docker fonctionne désormais avec d’autres OS tels que Microsoft Windows ou Apple macOS Docker Docker est composé de trois éléments : le daemon Docker qui s’exécute en arrière-plan et qui s’occupe de gérer les conteneurs (Containerd avec runC) une API de type REST qui permet de communiquer avec le daemon Le client en CLI (command line interface) : commande docker Par défaut, le client communique avec le daemon Docker via un socket Unix (/var/run/docker.sock) mais il est possible d’utiliser un socket TCP. Conteneur Il s’agit d’un ensemble de processus logiciels léger et indépendant regroupant tous les fichiers nécessaires à l’exécution des processus: • Code • Runtime • Outils système • Bibliothèque • Paramètres Ils peuvent être utilisés pour exécuter des applications Linux ou Windows. les containers se partagent le même noyau de système d’exploitation et isolent les processus de l’application du reste du système. Qu’est ce que docker vous permet de faire? Proposer/diffuser des applications dans un environnement maitrisé (Docker/Dockerfiles) Problèmes de versions et de dépendances pour une application Versions de dépendances : Version spécifique d’OS, installations personnelles ... Proposer un package binaire universel Documenter la procédure d’installation pour soi-même ou les curieux ⇒Répétabilité, consistance Déployer un ensemble d’applications (docker-compose) Description du fonctionnement d’un ensemble de services et de leurs interactions Par exemple: Apache + PHP + Mariadb + Redis Passage à l’échelle d’un ensemble d’applications (docker-compose/swarm) : multi-hôtes Augmenter le nombre de service lancé avec répartition de charge entre plusieurs machines. Docker File • Utiliser par Docker pour créer des containers. •C’est un fichier texte, qui contient toutes les commandes que l’utilisateur va faire pour assembler l’image •Construit via la commande « docker build » Docker File Les commandes que doit contenir un dockerfile sont les suivantes : ADD Copie un fichier de l’hôte vers le conteneur CMD Définit les commandes par défaut à exécuter, ou à passer à ENTRYPOINT ENTRYPOINT Définit le point d’entrée d’une application dans le conteneur ENV Définit les variables d’environnement (Exemple : “clé = valeur”) EXPOSE Expose un port du conteneur vers l’hôte (fonctionne de la même manière que la commande “docker run -p”) FROM Définit l’image à utiliser MAINTAINER Définit l’auteur du fichier Docker File RUN Démarre une commande à l’intérieur du conteneur USER Définit l’utilisateur pouvant exécuter l’image VOLUME Monte un dossier de l’hôte sur le conteneur WORKDIR Définit le dossier pour les directives CMD à exécuter LABEL Ajoute des metadata à une image Docker COPY Copie les fichier de [src] et les ajoute au chemin [dest] ONBUILD Ajoute un déclencheur pour que l’instruction soit exécutée plus tard. Docker compose le Docker Compose est un outil permettant de faciliter la gestion des applications Docker à conteneurs multiples, comme : • Démarrer, arrêter et reconstruire des services • Afficher le statut des services en cours d'exécution • Diffuser la sortie des logs des services en cours d'exécution • Exécuter une commande unique sur un service • etc ... Docker compose Les commandes que doit contenir un docker-compose.yml sont les suivantes : Version: dépend de la version du moteur Docker installé Services: Les services ne sont en réalité que des conteneurs Image: l’image du conteneur Container_name: nom du contenneur Restart: le comportement du conteneur en cas d'arrêt du processus ; Volumes: les points de montage entre le système hôte et les conteneurs ; Environnement: surcharger les variables d’environnement à utiliser. Ports: les ports disponibles entre la machine host et le conteneur. Depends_on: indique les dépendances du service Build: le Dockerfile source pour créer l'image du conteneur ; Volume: Pour définir le volume à utiliser Network: Pour définir un réseau Docker-compose uploads/s3/ docker 1 .pdf

  • 56
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager