Les technologies de conteneurisation d'applications sont largement utilisĂ©es dans le dĂ©veloppement de logiciels et l'analyse de donnĂ©es. Ces technologies contribuent Ă rendre les applications plus sĂ»res, Ă les rendre plus faciles Ă dĂ©ployer et Ă amĂ©liorer leur Ă©volutivitĂ©. La croissance et le dĂ©veloppement des technologies de conteneurisation peuvent ĂȘtre considĂ©rĂ©s comme l'une des tendances les plus importantes de notre Ă©poque.
Docker est une plate-forme conçue pour dĂ©velopper, dĂ©ployer et exĂ©cuter des applications dans des conteneurs. Le mot "Docker" est rĂ©cemment devenu un peu synonyme du mot "conteneurisation". Et si vous n'utilisez pas encore Docker, mais en mĂȘme temps que vous travaillez ou allez travailler dans les domaines du dĂ©veloppement d'applications ou de l'analyse de donnĂ©es, alors Docker est ce que vous rencontrerez certainement Ă l'avenir.
â
Partie 1: les basesâ
Partie 2: termes et conceptsâ
Partie 3: Fichiers Dockerfileâ
Partie 4: rĂ©duire la taille des images et accĂ©lĂ©rer leur assemblageâ
Partie 5: Ă©quipesâ
Partie 6: travailler avec des données
Si vous ne savez pas encore ce qu'est Docker, vous avez maintenant la possibilité de faire le premier pas vers la compréhension de cette plateforme. à savoir, aprÚs avoir maßtrisé ce matériel, vous comprendrez les bases de Docker et préparerez simultanément des pizzas.
Métaphores et Docker
Nous sommes constamment confrontĂ©s Ă des mĂ©taphores. Si vous regardez dans le dictionnaire d'Ozhegov, il s'avĂšre que la mĂ©taphore est "une comparaison figurative cachĂ©e, comparant un objet, un phĂ©nomĂšne Ă un autre". Les mĂ©taphores nous aident Ă saisir l'essence de nouveaux phĂ©nomĂšnes pour nous. Par exemple, les conteneurs virtuels peuvent ĂȘtre comparĂ©s aux conteneurs en plastique ordinaires. Une telle comparaison, en comparant les propriĂ©tĂ©s des conteneurs ordinaires que nous connaissons dĂ©jĂ avec les propriĂ©tĂ©s des conteneurs virtuels, vous aidera d'abord Ă les connaĂźtre, puis Ă comprendre leur essence.
ConteneurComme vous le comprenez, nous allons entamer la conversation sur Docker avec le concept de «conteneur».
Conteneur
Comme un conteneur en plastique ordinaire, un conteneur Docker a les caractéristiques suivantes:
- Vous pouvez y stocker quelque chose. Quelque chose peut ĂȘtre dans le conteneur ou Ă l'extĂ©rieur.
- Il peut ĂȘtre transportĂ©. Vous pouvez utiliser le conteneur Docker sur votre ordinateur local, sur l'ordinateur d'un collĂšgue, sur un serveur de fournisseur de services cloud (comme AWS). Cela rend les conteneurs Docker similaires aux conteneurs ordinaires, dans lesquels, par exemple, ils transportent divers bibelots au cĆur doux lorsqu'ils dĂ©mĂ©nagent dans une nouvelle maison.
- Il est commode de mettre quelque chose dans le rĂ©cipient et il est commode d'en retirer quelque chose. Un rĂ©cipient ordinaire a un couvercle sur les loquets, qui doit ĂȘtre retirĂ© afin de mettre quelque chose dans le rĂ©cipient ou d'en retirer quelque chose. Les conteneurs Docker ont quelque chose de similaire reprĂ©sentant leur interface, c'est-Ă -dire des mĂ©canismes qui leur permettent d'interagir avec le monde extĂ©rieur. Par exemple, un conteneur possĂšde des ports qui peuvent ĂȘtre ouverts afin qu'une application exĂ©cutĂ©e dans le conteneur soit accessible Ă partir d'un navigateur. Vous pouvez Ă©galement travailler avec le conteneur Ă l'aide des outils de ligne de commande.
- Si vous avez besoin d'un conteneur, vous pouvez le commander dans la boutique en ligne. Un conteneur vide peut ĂȘtre achetĂ©, par exemple, sur le site Web d'Amazon. Les conteneurs viennent dans ce magasin de fabricants qui les fabriquent en grande quantitĂ© Ă l'aide de moules. Dans le cas des conteneurs Docker, ce qui peut ĂȘtre comparĂ© au moule, Ă savoir l'image du conteneur, est stockĂ© dans un rĂ©fĂ©rentiel spĂ©cial. Si vous avez besoin d'un certain conteneur, vous pouvez tĂ©lĂ©charger l'image correspondante Ă partir du rĂ©fĂ©rentiel et, en l'utilisant, crĂ©er ce conteneur.
Bien sûr, les conteneurs en plastique, contrairement aux conteneurs Docker, personne ne vous enverra gratuitement, et lorsque vous les recevrez, ils seront vides. Mais il y a toujours quelque chose d'intéressant dans les conteneurs Docker.
Organismes vivants
Une autre approche pour penser aux conteneurs Docker consiste à les comparer avec des exemples d'organismes vivants. Une «instance» est quelque chose qui existe sous une forme ou une autre. Ce n'est pas seulement du code. C'est le code qui a provoqué l'existence de quelque chose de plus grand que lui, quelque chose, au sens figuré, vivant. Comme d'autres organismes vivants, des cas de conteneurs naissent, vivent et meurent.
Monstre appelé à la vieLes conteneurs Docker sont des images Docker animées.
Logiciels
Les conteneurs Docker peuvent ĂȘtre comparĂ©s non seulement aux conteneurs ordinaires ou aux organismes vivants. Ils peuvent ĂȘtre comparĂ©s aux programmes. AprĂšs tout, les conteneurs sont des programmes. Et, Ă un niveau fondamental, un conteneur est un ensemble d'instructions qui s'exĂ©cute sur un processeur, traitant une sorte de donnĂ©es.
Un conteneur est un programmeAu moment de l'exécution, le conteneur Docker exécute généralement une sorte de programme à l'intérieur. Elle effectue certaines actions dans le conteneur, c'est-à -dire qu'elle fait quelque chose d'utile.
Par exemple, le code qui s'exécute dans un conteneur Docker peut avoir envoyé le texte que vous lisez à votre ordinateur. Il est fort possible que le code qui s'exécute dans le conteneur Docker accepte les commandes vocales que vous donnez à Amazon Alexa et les convertisse en instructions pour d'autres programmes exécutés dans d'autres conteneurs.
Ă l'aide de Docker, vous pouvez exĂ©cuter plusieurs conteneurs sur le mĂȘme ordinateur en mĂȘme temps. Et, comme tout autre programme, les conteneurs Docker peuvent ĂȘtre dĂ©marrĂ©s, arrĂȘtĂ©s, supprimĂ©s. Vous pouvez examiner leur contenu et les crĂ©er.
Docker Concepts
âMachines virtuelles
Les prédécesseurs des conteneurs Docker étaient des machines virtuelles. Une machine virtuelle, comme un conteneur, isole l'application et ses dépendances de l'environnement externe. Cependant, les conteneurs Docker offrent des avantages par rapport aux machines virtuelles. Ainsi, ils consomment moins de ressources, ils sont trÚs faciles à transférer, ils démarrent plus rapidement et retrouvent un état sain. Dans
cet article, vous pouvez trouver une comparaison détaillée des conteneurs et des machines virtuelles.
â Image du conteneur Docker
Nous avons dĂ©jĂ parlĂ© des «images» ci-dessus. Qu'est ce que c'est Bonne question. Ce que Docker appelle le terme «image» ou, en anglais, «image» n'est pas du tout la mĂȘme chose que, par exemple, la photographie (c'est l'une des significations du mot «image»).
Les images Docker ne sont pas des photosLes images des conteneurs Docker peuvent ĂȘtre comparĂ©es Ă des dessins, Ă des emporte-piĂšces ou Ă des moules pour fabriquer des produits en plastique. Les images sont des modĂšles immuables qui sont utilisĂ©s pour crĂ©er les mĂȘmes conteneurs.
Les conteneurs Docker ressemblent à des emporte-piÚcesL'image du conteneur Docker contient l'image du systÚme d'exploitation de base, le code de l'application, la bibliothÚque dont il dépend. Tout cela est organisé comme une entité unique, sur la base de laquelle vous pouvez créer un conteneur.
â Dockerfile
Le
Dockerfile contient un ensemble d'instructions, aprĂšs quoi le Docker assemblera l'image du conteneur. Ce fichier contient une description de l'image de base, qui sera la couche d'image d'origine. Parmi les images de base officielles populaires, on peut noter
python ,
ubuntu ,
alpin .
Vous pouvez ajouter des calques supplémentaires à l'image du conteneur, au-dessus de l'image de base. Cela se fait conformément aux instructions du
Dockerfile
. Par exemple, si le
Dockerfile
décrit une image que vous prévoyez d'utiliser pour résoudre des tùches d'apprentissage automatique, il peut contenir des instructions pour inclure les bibliothÚques NumPy, Pandas et Scikit-learn dans la couche intermédiaire d'une telle image.
Et enfin, l'image peut contenir, en plus de toutes les autres, une autre couche mince, dont les donnĂ©es stockĂ©es peuvent ĂȘtre modifiĂ©es. Il s'agit d'une petite couche de volume contenant le programme que vous prĂ©voyez d'exĂ©cuter dans le conteneur.
â Docker Container
Pour démarrer le conteneur, nous avons besoin, d'une part, de l'image du conteneur, et d'autre part, de l'environnement dans lequel Docker est installé, capable de comprendre une commande du formulaire
docker run image_name
. Cette commande crée un conteneur à partir de l'image et le lance.
â RĂ©fĂ©rentiel de conteneurs
Si vous souhaitez permettre à d'autres personnes de créer des conteneurs en fonction de votre image, vous pouvez envoyer cette image dans le cloud. Le plus grand référentiel de ce type est le référentiel
Docker Hub . Il est utilisé lorsque vous travaillez avec Docker par défaut.
Nous avons déjà discuté de beaucoup de choses. Il est temps de tout rassembler et de comparer le travail avec les conteneurs Docker à la pizza.
Cuisiner avec Docker
La pizza prĂȘte est un rĂ©cipient- Une recette de pizza est un
Dockerfile
. Il nous dit ce qui doit ĂȘtre fait pour atteindre l'objectif, c'est-Ă -dire obtenir un conteneur fonctionnel. - Les ingrĂ©dients qui composent la pizza sont des couches de l'image du rĂ©cipient. Pour notre pizza, vous aurez besoin de gĂąteau, de sauce et de fromage.
Si vous mettez la recette et les ingrĂ©dients sur la table, il s'avĂšre qu'au mĂȘme endroit, tout ce dont vous avez besoin est collectĂ© pour cuisiner la pizza. Tout cela peut ĂȘtre comparĂ© Ă l'image du conteneur Docker.
Ă partir de la recette (
Dockerfile
), vous pouvez découvrir la séquence d'actions que vous devez effectuer pour cuisiner la pizza:
- Korzh est prĂȘt Ă l'emploi, nous ne le changeons pas. Il peut ĂȘtre comparĂ© Ă l'image de base du systĂšme d'exploitation Ubuntu. Il s'agit de la couche infĂ©rieure de l'image, elle est ajoutĂ©e Ă l'image en premier.
- Ensuite, du fromage est ajouté au gùteau. Cela revient à ajouter un deuxiÚme calque à l'image en tant que bibliothÚque externe comme NumPy.
- Ensuite, en plus du fromage, ajoutez la sauce. Il s'agit du code de l'application qui doit s'exécuter dans le conteneur.
Il est maintenant temps de faire cuire la pizza au four.
Oven est une plateforme DockerLe four dans lequel la pizza est cuite ressemble Ă la plateforme Docker. Le four est installĂ© dans la cuisine, avec son aide, vous pouvez faire cuire des aliments. De la mĂȘme maniĂšre, Docker est installĂ© sur un ordinateur afin de «cuire» les conteneurs.
Le four, s'il est électrique, est allumé en tournant le bouton du régulateur de température. La
docker run image_name
est quelque chose comme un contrÎleur de température, dont la «rotation» fait que le systÚme crée et lance un conteneur.
Pizza prĂȘte - c'est le conteneur Docker.
Et manger de la pizza signifie utiliser l'application en cours d'exécution dans le conteneur.
Comme pour la pizza, la préparation du travail des conteneurs Docker prend un certain temps, mais en fin de compte, et dans les deux cas, cela se révÚle savoureux.
Résumé
Ici, au niveau conceptuel, nous avons couvert les bases de Docker. Nous espérons que les comparaisons présentées ici vous ont aidé à comprendre ce qu'est Docker et à ressentir la valeur des métaphores dans la maßtrise des nouvelles technologies.
Chers lecteurs! Cet article est une traduction du premier article de la sĂ©rie de didacticiels Docker. Selon l'auteur, un total de 5 documents de ce type devrait ĂȘtre publiĂ©. Les
deuxiĂšme ,
troisiĂšme et
quatriĂšme parties sont dĂ©jĂ prĂȘtes. Dites-nous, cela vaut-il la peine de traduire les articles suivants de cette sĂ©rie?
