
C'est dans cet environment que tous vos labs (travaux practiques) se feront gratuit pour vous.
Cette classe sur les Fondamentaux de Docker est bénéfique pour divers individus dans le domaine du développement logiciel, des opérations et de l'informatique
La difference entre la Virtualization et la Conteneurisation
Qu’est-ce que Docker?
Docker est un projet Open Source pour créer des conteneurs et des applications basées sur des conteneurs
Qu'est-ce qu'un conteneur?
Un conteneur est un package logiciel léger, autonome et exécutable qui comprend tout ce dont vous avez besoin pour exécuter une application.
Dans ce chapitre, on va élaborer sur les avantages, de l'utilisation de Docker, par rapport à la virtualisation et l’utilisation de serveurs physiques pour implémenter des applications.
Le déploiement d’une application sur :
- Un serveur physique ou sur . . .
- Une machine virtuelle ou sur . . .
- Un conteneur ?
Qu’est-ce qui est, plus économique, plus adapté, plus rapide, plus facile, et plus portable? . . .
Ceci vous permettra de faire des économies énormes surtout dans les pays en voie de développement ou les budgets informatiques on restreints.
Les avantages de l'utilisation de Docker par rapport à la virtualisation sont nombreux :
Isolation légère : Docker utilise des conteneurs légers qui partagent le même noyau du système d'exploitation, offrant une isolation efficace sans l'overhead des machines virtuelles.
Rapidité : Les conteneurs Docker se déploient rapidement car ils n'incluent que les dépendances nécessaires, ce qui accélère le processus de développement et de déploiement.
Utilisation efficace des ressources : Avec Docker, vous pouvez exécuter plusieurs conteneurs sur une même machine, optimisant ainsi l'utilisation des ressources matérielles.
Portabilité : Les conteneurs Docker sont portables et peuvent être déployés facilement sur différentes infrastructures, ce qui facilite la gestion et la migration des applications.
Écosystème robuste : Docker bénéficie d'un écosystème riche en outils et en services qui simplifient la gestion, la supervision et la mise à l'échelle des applications conteneurisées.
Les avantages de l'utilisation de Docker par rapport à la virtualisation incluent des économies de coûts significatives et une mise en œuvre plus aisée :
Coûts réduits : Docker permet d'économiser sur les ressources matérielles en utilisant des conteneurs légers, réduisant ainsi les coûts d'infrastructure.
Facilité de déploiement : La mise en place de conteneurs Docker est plus rapide et moins complexe que la virtualisation traditionnelle, réduisant les coûts de mise en œuvre et de maintenance.
Utilisation efficace des ressources : Docker optimise l'utilisation des ressources en permettant l'exécution de multiples conteneurs sur une même machine, réduisant ainsi les coûts liés à l'infrastructure.
Flexibilité et évolutivité : Docker offre une flexibilité et une évolutivité accrues, permettant aux entreprises de s'adapter rapidement aux besoins changeants et de réduire les coûts liés aux changements d'infrastructure.
Écosystème riche : Docker bénéficie d'un large écosystème d'outils et de services qui facilitent la gestion et la supervision des applications conteneurisées, réduisant ainsi les coûts opérationnels.
Vous êtes certainement, en train de vous grater la tête, pour savoir qu’est ce que Docker, et comment cela fonctionne, comment je vais m’y prendre, pas mal de questions qu’on se pose souvent, quand on n’est pas familier avec une nouvelle technologie.
Eh bien dans ce chapitre on va introduire l’Architecture de Docker . . .
. . . Soyez patient! Avant qu’on commence les choses serieuses . . .
. . . Il est necessaire de comprendre certaines theories and termes que l’on va utilizer dans ce cours . . .
L’Architecture Docker
Docker utilise une architecture client-serveur. Le client Docker qui est en fait, la commande [ docker ] elle-même, parle avec le daemon Docker qui, effectue le gros du travail de création, d'exécution et de distribution de vos conteneurs Docker.
Le client Docker et le daemon peuvent s'exécuter sur le même système, ou vous pouvez connecter, un client Docker à un démon Docker distant.
Le client Docker et le démon communiquent à l'aide d'une API REST, via des sockets UNIX ou une interface réseau.
Le client Docker – est la commande du système d'exploitation : [ docker ], c'est le principal moyen par lequel de nombreux utilisateurs de Docker interagissent avec Docker Engine. Lorsque vous utilisez des commandes, telles que docker run, le client envoie ces commandes au démon docker : dockerd, qui les exécute. Le client Docker peut communiquer avec plusieurs démons.
Le Host Docker : le serveur exécutant du démon Docker, qui effectue le gros du travail de création, d'exécution et de distribution de vos conteneurs Docker.
Docker Registries: hub.docker.com. C'est là que les images Docker sont stockées. Docker Hub est un registre public que tout le monde peut utiliser, et Docker par défaut est configuré pour rechercher des images sur Docker Hub. Vous pouvez même gérer votre propre registre privé. Lorsque vous utilisez, les commandes docker pull ou docker run, les images requises, sont extraites de votre registre configuré. Lorsque vous utilisez la commande docker push , votre image est transférée vers votre registre configuré.
S'il vous plaît, ne vous inquiétez pas de tout ce verbiage, vous l'aurez compris lorsque nous commencerons les étapes pratiques.
Nous développerons sûrement un peu plus, plus tard, cette architecture.
Maintenant qu’on vient de voir l’architecture de Docker, certainement, ce qui tourne dans votre tête, c’est comment creer une plateforme Docker?
Dans ce chapitre on va étudier:
- Comment construire une plateforme Docker
ou bien
- Accéder gratuitement à une, pour s'entraîner
Référence d'installation de Docker
Voici les liens que j'ai utilisés pour installer Docker sur Microsoft Windows or Oracle Linux 8, au cas où vous souhaiteriez créer votre propre environnement Docker. . .
Maintenant, si vous n’avez pas le temps, d’installer et configurer vous-même l’environnement. . .
. . . Bien !! Docker a mis en place un site en ligne, sur lequel vous pouvez vous entraîner, à l'aide des exemples, dans ce cours. . .
En fait, tous les laboratoires de cette classe sont exécutés dans ce Docker Free Tiers: https://labs.play-with-docker.com. . . .
. . . gratis pour tous . . .
Neamoins, dans la prochaine diapositive, je vais passer en details, comment on peut se creer, un environment Docker, sur un Laptop ou, un Desktop server.
Cette fois on va passer en révision comment installer Docker DESKTOP sur . . .
. . . Un Système d’Exploitation: Microsoft Windows . . .
. . . La référence pour installer Docker Desktop est affichée sur cette page
à https://docs.docker.com/desktop/install/windows-install/
. . . Utiliser la, si vous le désirez . . .
Apres avoir installé avec succès Docker Desktop pour Microsoft Windows
Voila les étapes comment démarrer docker dans une Platform Microsoft Windows
- A partir du Search à Tapez [ Docker Desktop ]
- Clickez sur à 2: Docker Desktop
- Puis sélectionnez 3: àRun as administrator
- Entrez en: 4 et 5 votre nom d’utilisateur et votre mot de passe (du compte que tu as créé à hub.docker.com)
MON ENVIRONNEMENT DOCKER
Cette fois comment installer Docker sur un systeme d’exploitation Unix/Linux . . .
Au cas où vous désiriez créer vôtre propre environment Docker, voilà le lab que j’ai crée chez moi pour m’initier à Docker.
En tout cas, je vous ai dit que Docker a mis en place un site gratis ou vous pouvez vous y prendre. . .
Neamoins je vais commenter sure ce lab que j’ai crée . . .
-Mon ISP Routeur à droite. . .
-Dell OptiPlex 780 SFF un ordinateur de bureau, remis à neuf, avec un Intel Core 2 Duo 2,9 GHz, 8 Go de RAM, 250 GB d'espace disque, que j'ai nommé . . .
1.dell0el82 chargé avec Oracle Linux 8.2
-HP Pavilion Laptop avec Intel Core i7 10th Gen, chargé avec : avec écran tactile de 15 pouces, 16 GB de mémoire 1,0 TB d’espace disque, chargé avec:
1.Windows 10
2.Oracle VirtualBox Hypervisor Version 6.1.10 r138449 (Qt5.6.2) à partir de laquelle j'ai créé 2 machines virtuelles chacune avec 3 GB de mémoire, 2 vCPU et 40 GB d’espace disque pour ce laboratoire. Ces 2 Machines Virtuelles sont . . .
vvboel82 chargé avec Oracle Enterprise Linux 8.2
vvbubuntu20 chargé avec Ubuntu 20
-En plus de ces machines virtuelles -delloel82, -vboel82, -vbubuntu20, j'ai installé sur chaque, Docker Customer Edition pour les laboratoires.
C'est dans ce laboratoire que j'ai développé et testé tous les matériaux utilisés pour ce cours. . .
. . . Plus tard, je l’ai porté vers Docker Free Tiers : https://labs.play-with-docker.com. . .
. . . Permettant ansi à ceux qui n’ont pas le luxe de se payer ce material d’en profiter en ligne sur internet sans frais. . . .
Voila! Bien avant de commencer avec le site en ligne gratuitement . . .
. . . Il faut imperativement d'abord créer vous-même un compte sur https://hub.docker.com/ . . .
. . . Cliquez sur [ SIGNUP / S'INSCRIRE ] dans le coin supérieur droit . . .
Apres avoir crée votre compte sur https://hub.docker.com/ . . .
Allons au vif du cours . . .
Voila! Comme on vient de se creer un compte sur hub.docker.com . .
. . . On va utilizer ce compte pour se connecter au site gratuit . . .
ou les TP se feront, noter que ce site web est different de hub.docker.com
Pour plus de clarte, hub.docker.com c’est la ou resident, les images qu’on utilisera, pour creer des conteneurs, et celui que vous voyez a l’ecran labs.play-with-docker.com
. . . Eb bien c’est la ou les TP se feront pour ceux qui ne se sont pas cree un environment Docker Local.
Je repete c’est la ou nous ferons les exercices en d’autres mots nos lab, nos TP (Travaux Pratiques).
Pour pouvoir l’utilizer, il faut avoir vos credentials de hub.docker.com.
. . . Acceder au site: Play with Docker (play-with-docker.com) à https://labs.play-with-docker.com/
. . . Passons au lab voir comment s’y prendre . . .
Cliquez sur [ Login ] et Select [ Docker ] sur le menu deroulant (drop down)
Une nouvelle fenêtre s’ouvre
Username or email address: asokone
Password: Chez Do Maj avec # Yannou
Cliquez sur [ Continue ]
Cliquez sur [ Start ] . . . (qques secondes plus tard, la page suivante apparait. . . )
Au dessus [ + ADD NEW INSTANCE ] Cliquez sur [ LA CLE A MOLLETTE ] pour selectioner
: : : [ 3 Managers and 2 Workers ] : : :
Dans le volet gauche de la page, cliquez sur [ + ADD NEW INSTANCE ] pour créer une instance de VM avec Docker Engine chargé, prête à créer des conteneurs
Dès que vous cliquez sur [+ ADD NEW INSTANCE ], une nouvelle instance de VM est créée, avec Ubuntu ou Alpine ou tout autre Linux . . .
. . . Avec une console ouverte vers l'invite root . . .
Assurez-vous de sélectionner [manager1]
IMPORTANT SI TU VEUX COPIER ET COLLER/POSTER:
Sur une fenetre avec Microsoft-Edge browser faites le comme ceci
Selectionner votre text, puis appuyer ctrl + insert pour copier et shift + insert pour coller/poster
Bonjour à tous ! Aujourd'hui, nous allons plonger dans le monde fascinant de Docker et découvrir comment cette technologie révolutionnaire peut simplifier le déploiement et la gestion d'applications.
Nous commencerons par une introduction à Docker, où nous explorerons ses principes de base et comprendrons son fonctionnement. Ensuite, nous verrons comment créer des images Docker à l'aide de fichiers spéciaux appelés Dockerfiles, qui nous permettent de définir l'environnement et les dépendances nécessaires à nos applications.
Nous passerons ensuite en revue les commandes de base de Docker, indispensables pour gérer nos conteneurs, comme les démarrer, les arrêter et les supprimer. Nous aborderons également les concepts de volumes et de réseaux Docker, qui sont essentiels pour le stockage persistant et la communication entre les conteneurs.
Ensuite, nous plongerons dans Docker Swarm, qui est l'outil de clustering de Docker, permettant de gérer plusieurs conteneurs sur plusieurs serveurs. Nous découvrirons également Docker-Compose, un outil puissant pour définir et gérer des applications multi-conteneurs.
Pour mettre en pratique nos connaissances, nous utiliserons Docker-Compose pour créer une pile d'applications, avec un site Web en front-end et une base de données en back-end. Nous explorerons également la création d'un site WordPress avec Docker, ainsi qu'une application web simple pour illustrer les capacités de cette technologie.
Enfin, nous aurons un aperçu de Docker Machine, un outil pour provisionner et gérer des serveurs Docker sur différents environnements.
C'est un voyage passionnant dans l'univers de Docker, et j'espère que vous en ressortirez avec une compréhension approfondie de cette technologie et ses applications pratiques dans le monde réel.
À l'écran on a le programme de cette classe :
Introduction à Docker
Créer des images à l'aide de Dockerfiles
Commandes Docker de base
Volumes et Réseaux Docker
Comprendre Docker Swarm
Comprendre Docker-Compose
Docker-compose pour créer une pile d'applications (Web en Front-end et une base de donnees en Back-end)
Créer un site WordPress avec Docker
Application Web simple avec Docker
Présentation de Docker Machine
Ce cours Docker Fundamentals s'adresse à un large public, des développeurs, recherchant un développement d'applications rationalisées, aux administrateurs système, visant un déploiement et une gestion plus éfficaces.
Son importance réside dans son rôle de technologie fondamentale, transformant la manière dont les logiciels sont développés, déployés et gérés dans divers environnements.
Tous les documents de lab, de ce cours, peuvent être accédés, à l'adresse web suivantes . . .
https://github.com/asokone/docker/tree/master/
https://github.com/asokone/docker.git
Sans perdre de temps, passons maintenant, a la pratique tant attendue . . .
Qu’est ce qu’un Dockerfile?
Un Dockerfile, est un document texte, qui contient toutes les commandes, qu'un utilisateur peut appeler, sur la ligne de commande, pour assembler une image.
Veuillez utiliser l'URL https://docs.docker.com/reference/dockerfile/ sur cette diapositive comme référence sur Dockerfile. Cette URL couvre les topics suivants sur Docker
- La Référence sur les commandes docker
- La Référence sur le contenu du fichier Dockerfile
- La Référence sur la commande docker-compose
- La Référence API
Passons a notre premier Dockerfile dans la diapositive suivante.
Un Dockerfile consiste en une liste de commandes Docker. Dans cet exemple . . .
Une image est un read-only template (veuillez noter le mot - TEMPLATE), avec des instructions, pour créer un conteneur Docker.
Souvent, une image est basée sur une autre image, avec une personnalisation supplémentaire.
Par exemple, vous pouvez créer une image basée sur l'image Ubuntu, puis y installer le serveur Web Apache et votre application, ainsi que les détails de configuration nécessaires pour faire fonctionner votre application.
Pour créer votre propre image, vous créez un fichier Dockerfile, avec une syntaxe simple, pour définir les étapes nécessaires, pour créer l'image et l'exécuter.
Chaque instruction, dans un Dockerfile, crée une couche dans l’image.
Les détails d’une image viendront plus tard dans cette classe
NOTRE PREMIER FICHIER DOCKERFILE
•Ligne 1: # est un commentaire – Exécution de l'image Ubuntu sur Docker
•Ligne 2: FROM base l'image, sur une image existante, appelée Ubuntu version 16.04 à partir du hub Docker.
You can do this independently of which system you’re running Docker on. https://hub.docker.com/search?q=ubuntu&type=image
•Line 3: RUN une mise à jour d’Ubuntu et installe un programme nommé cowsay.
Cowsay, est un programme qui génère des images ASCII, avec un message.
Remarque : Vous pouvez exécuter la commande [docker build] pour créer une image, puis exécuter la commande [docker run] pour exécuter des images Linux, sur n'importe quelle plate-forme.
Ainsi, les images comme Ubuntu sont idéales pour créer des applications qui devraient être disponibles sur plusieurs plates-formes.
En revanche, une image Windows ne fonctionnera que sous Windows et une image macOS ne fonctionnera que sur macOS.
Pour reference sur Dockerfile suivez the URL à
Dockerfile reference | Docker Docs à https://docs.docker.com/reference/dockerfile/#from
Passons au lab pour exécuter la commande [ docker build ] sur ce Dockerfile !!
Voici notre deuxième Dockerfile.
Ce Dockerfile consiste en une liste de commandes Docker. Dans l'exemple ci-dessus, il y a 4 étapes
•Ligne 1-3: # est commentaire
•Ligne 4: FROM base l'image, sur une image existante, appelée python:2.7-alpine, à partir du hub Docker. https://hub.docker.com/search?q=python%3A2.7-alpine&type=image
•Ligne 5: RUN créez un répertoire, appelé /app
•Ligne 6: WORKDIR changez votre répertoire de travail à /app
•Ligne 7: COPY index.html, dans le répertoire de travail par défaut
•Ligne 8-11: CMD Obtient, à partir du site web bootstrap.pypa.io, un fichier python, appelé get-pip.py, puis installe python sur l'image, puis met à jour python, puis installe pip
•Ligne 12: COPY le tout depuis ce répertoire local, vers le répertoire de travail dans le conteneur. (cela copiera AndialySokone.jpg mon image)
•Ligne 13: LABEL, note le mainteneur de cette image docker et sa version
•Ligne 14: Exécute le module python, SimpleHTTPServer en tant que serveur http pour nous permettre d'accéder au fichier index.html
SimpleHTTPServer est un module en Python qui, fournit une fonctionnalité, de serveur Web simple.
Il est utilisé pour servir, les fichiers du répertoire actuel via HTTP.
Ce module fait partie, de la bibliothèque standard Python, et est particulièrement utile pour, partager rapidement des fichiers ou tester des pages Web.
NOTE: Comme j’installe la version Python 2 j’utilise [ python -m SimpleHTTPServer 5000] pour la version Python 3 priere utiliser [python3 -m http.server 5000 ]
Ce cours est crucial car il permet aux individus d'acquérir les connaissances fondamentales de Docker, leur permettant d'exploiter les avantages de la conteneurisation. Les étudiants acquièrent une expertise dans la création, la gestion et l'orchestration de conteneurs, la rationalisation des déploiements, l'optimisation de l'utilisation des ressources et la garantie d'applications cohérentes et évolutives dans divers environnements. Tous les laboratoires pratiques sont en ligne dans un systeme gratuit, sans frais pour les étudiants (aucune carte de crédit requise). Les compétences acquises sont essentielles au développement de logiciels modernes, offrant agilité, évolutivité et efficacité dans le déploiement et la gestion des applications.
Le cours Docker Fundamentals couvre une gamme complète de concepts et d'outils Docker essentiels, offrant une compréhension approfondie de la conteneurisation et de l'orchestration. Voici une répartition détaillée :
Conteneur Docker : comprenant les principes de la conteneurisation, les étudiants apprennent à créer, gérer et optimiser les conteneurs Docker. Ils explorent les cycles de vie des conteneurs, la personnalisation et les meilleures pratiques pour une utilisation efficace.
Registres/Images Docker (Pull & Push) : les étudiants se plongent dans la création d'images Docker avec Dockerfile, l'optimisation et la gestion. Ils acquièrent une expérience pratique dans la création d'images personnalisées à l'aide de Dockerfiles et de Docker Hub.
Docker Compose : en explorant Docker Compose, les étudiants découvrent la puissance de la définition et de la gestion d'applications multi-conteneurs à l'aide de fichiers YAML. Ils apprennent à orchestrer sans effort des services interconnectés.
Docker Swarm : Introduction à Docker Swarm pour l'orchestration de conteneurs. Les étudiants plongent dans le mode Swarm et apprennent à gérer des clusters, à déployer des services à grande échelle et à garantir la tolérance aux pannes pour les applications distribuées.
Docker Volumes : Comprendre les volumes Docker et la gestion des données. Les étudiants explorent le stockage persistant, la gestion des données entre les conteneurs et les hôtes et l'exploitation des volumes pour la persistance des données.
Docker Machine : exploration de Docker Machine pour le provisionnement d'hôtes Docker sur diverses plates-formes. Les étudiants apprennent à configurer et à gérer facilement les environnements Docker.
Réseaux Docker : Comprendre les modèles et les concepts de réseau Docker. Les étudiants acquièrent des connaissances sur la communication par conteneurs, l'isolation du réseau et la création de configurations réseau efficaces.
À la fin, les étudiants possèdent un solide ensemble de compétences, capables d'exploiter efficacement les outils Docker pour créer, gérer et orchestrer des conteneurs, concevoir des applications multiservices, mettre en œuvre des solutions de stockage persistantes, gérer des réseaux et optimiser les environnements Docker pour un déploiement d'applications rationalisé et évolutif.
Le public de ce cours Docker Fundamentals comprend :
Développeurs : ceux qui souhaitent maîtriser la conteneurisation pour un développement et un déploiement efficaces d'applications.
Ingénieurs DevOps : professionnels recherchant des compétences en orchestration pour gérer des environnements conteneurisés.
Administrateurs système : personnes responsables de la gestion de l'infrastructure, visant à optimiser les flux de travail des conteneurs.
Équipes d'exploitation : équipes axées sur les déploiements évolutifs et les configurations tolérantes aux pannes.
Passionnés de technologie : personnes désireuses de moderniser les flux de travail avec Docker et la conteneurisation.
Améliorer les compétences : l'ajout de compétences Docker à son répertoire peut améliorer les perspectives de carrière et ouvrir les portes à de nouvelles opportunités dans un paysage technologique en évolution rapide.
Dans l'ensemble, les principes fondamentaux de Docker fournissent une compréhension fondamentale cruciale pour les pratiques modernes de développement de logiciels, offrant efficacité, évolutivité et standardisation dans le déploiement et la gestion des applications.