ASP. Développement NET, Docker et Microsoft Azure | Trevoir Williams | Skillshare

Vitesse de lecture


1.0x


  • 0.5x
  • 0.75x
  • 1 x (normale)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

ASP. Développement NET, Docker et Microsoft Azure

teacher avatar Trevoir Williams, Jamaican Software Engineer

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Leçons de ce cours

    • 1.

      Introduction

      1:02

    • 2.

      Quels sont les conteneurs ?

      9:41

    • 3.

      Configurer le dispositif de quai

      4:16

    • 4.

      Créer un conteneur

      11:06

    • 5.

      Configurer . Projet de base NET

      13:34

    • 6.

      Contenez. Application NET

      13:21

    • 7.

      Orchestration avec dresser

      6:42

    • 8.

      Registre des conteneurs Azure

      7:24

    • 9.

      Instances de conteneur Azure

      5:36

    • 10.

      Publier des exemples de conteneur Azure

      3:34

    • 11.

      Vue d'ensemble du service Azure Kubernetes

      4:56

    • 12.

      Nettoyage des ressources

      2:27

    • 13.

      Conclusion

      1:04

  • --
  • Niveau débutant
  • Niveau intermédiaire
  • Niveau avancé
  • Tous niveaux

Généré par la communauté

Le niveau est déterminé par l'opinion majoritaire des apprenants qui ont évalué ce cours. La recommandation de l'enseignant est affichée jusqu'à ce qu'au moins 5 réponses d'apprenants soient collectées.

20

apprenants

--

projet

À propos de ce cours

Ce cours est conçu pour équiper les étudiants les connaissances et les compétences nécessaires pour développer des applications Web modernes, évolutives et basées sur le cloud en utilisant ASP.NET, Docker et Microsoft Azure.

Le cours commence par une introduction à ASP.NET, qui est un cadre populaire pour la création d'applications Web avec C #. Les étudiants apprendront à développer des applications Web à l'aide d'ASP.NET et ses outils associés, tels que Visual Studio et . NET Core.

Ensuite, le cours portera sur Docker, une plate-forme populaire pour containerizing applications. Les étudiants apprendront à créer et à gérer des conteneurs Docker pour les applications ASP.NET et à les déployer dans divers environnements.

Enfin, le cours présentera Microsoft Azure, une plate-forme de cloud computing qui fournit un large éventail de services pour la construction, le déploiement et la gestion des applications. Les étudiants apprendront à déployer leurs applications ASP.NET Dockerized sur Microsoft Azure, et à tirer parti des nombreux services d'Azure, tels que le service d'applications Azure, la base de données SQL Azure et les fonctions Azure.

Tout au long du cours, les étudiants travailleront sur des projets pratiques qui leur permettront d'appliquer les concepts qu'ils apprennent en cours. À la fin du cours, les étudiants auront une solide compréhension des développements ASP.NET, Docker et Microsoft Azure, et pourront concevoir et déployer leurs propres applications Web dans le cloud.

Rencontrez votre enseignant·e

Teacher Profile Image

Trevoir Williams

Jamaican Software Engineer

Enseignant·e

Compétences associées

Développement Développement Web
Level: Intermediate

Notes attribuées au cours

Les attentes sont-elles satisfaites ?
    Dépassées !
  • 0%
  • Oui
  • 0%
  • En partie
  • 0%
  • Pas vraiment
  • 0%

Pourquoi s'inscrire à Skillshare ?

Suivez des cours Skillshare Original primés

Chaque cours comprend de courtes leçons et des travaux pratiques

Votre abonnement soutient les enseignants Skillshare

Apprenez, où que vous soyez

Suivez des cours où que vous soyez avec l'application Skillshare. Suivez-les en streaming ou téléchargez-les pour les regarder dans l'avion, dans le métro ou tout autre endroit où vous aimez apprendre.

Transcription

1. Introduction: Bon retour, les gars. Dans cette section, nous allons commencer à examiner conteneurs dans le cloud ou Azure Containers. Dans cette section, nous allons donc en apprendre davantage sur la conteneurisation et nous allons examiner plus en détail ce que c'est, comment nous pouvons la configurer et l'utiliser localement. Ensuite, nous allons voir comment nous pouvons conteneuriser un projet Dotnet Core. Et puis, comme nous l'avons hébergé à l'aide du service Container Instances fourni par Microsoft dans son ensemble, nous pouvons héberger notre image de conteneur à l' aide d' Azure Container Registry. Et nous allons passer en revue Kubernetes. Sachez que si c'est la première fois que vous procédez à la conteneurisation, ne vous inquiétez pas , il s' agit d'un aperçu, mais nous allons suffisamment aborder la question pour que vous vous sentiez en confiance pour en discuter. Bien entendu, il ne s'agit pas d'un cours approfondi sur la conteneurisation. Vous pouvez consulter mon cours complet à ce sujet. Mais pour cette section, nous allons avoir une vue d'ensemble de l'ensemble du week-end déplacer nos conteneurs de notre environnement local vers nos environnements cloud. Alors restez à l'affût. Je sais que tu vas t'amuser. 2. Quels sont les conteneurs ?: Avant de passer à nos conteneurs zéro, voici un autocollant : regardez les conteneurs ce qu'ils sont et pourquoi nous les utilisons. Selon un conteneur, il s'agit d'une unité logicielle standard qui regroupe le code et toutes ses dépendances. L'application s'exécute rapidement, manière fiable et dans n'importe quel environnement. Et c'est ce que je paraphrase, ce qui est écrit, mais c'est l'explication et cela vient de docker.com. Non. Pourquoi avons-nous besoin de conteneurs ? Et c'est un mot à la mode. Vous en entendrez parler en parlant de conteneurs et conteneurisation et des raisons pour lesquelles nous devrions y passer. Examinons quels sont les problèmes existants et comment les conteneurs peuvent nous aider. Aucun problème existant lors du développement de logiciels. La virtualisation a un coût. Nous venions donc tout juste d' une section consacrée aux machines virtuelles dans le cloud et à l' infrastructure en tant que service. En réalité, et je suis sûr que chaque développeur peut attester du fait que lorsque vous avez un environnement et que vous essayez de développer en fonction de cet environnement, vous aurez besoin de machines virtuelles, n'est-ce pas ? se peut donc que l'organisation n'achète pas machine par logiciel que vous possédez. Au lieu de cela, ils vont procéder à la mise en service d'une machine virtuelle. Chaque machine virtuelle doit disposer d'un système d'exploitation, ce qui signifie qu'un plus grand nombre de licences sont requises pour chaque machine virtuelle, puis pour tout logiciel de support dont vous avez besoin pour votre application spécifique sur votre machine virtuelle ou un ensemble de machines virtuelles. Il s'agit d'autres coûts de licence. Vous devez donc tenir compte du fait que virtualisation n'est pas une entreprise peu coûteuse, en particulier lorsqu'elle est réalisée en interne. Nous sommes également confrontés au défi des différences entre les environnements, car lorsque nous provisionnons une machine virtuelle et installons une version particulière du logiciel, version du système d'exploitation sur cette machine ou cette machine virtuelle en particulier. Au contraire, cet environnement est configuré d'une manière particulière, il est donc très difficile, pas très, mais très difficile de reproduire cet environnement exactement pour Q0. Et puis, en ce qui concerne la production d'Accenture, nous sommes confrontés en tant que développeurs une situation où cela fonctionne dans Dove et où il y a une légère différence de version entre le développement et l'assurance qualité. Il tombe en panne en q0 et même lorsque nous corrigeons la file d'attente, cela ne fonctionne pas immédiatement dans Prod. Il y aura donc toujours de légères différences entre les différents environnements. Et cela peut provoquer, je voulais dire, maux de tête inutiles pour nous en tant que développeurs et même pour les infrastructures. Je suis un pratiquant, je le sais. Une autre chose est de savoir à quel point est-il facile pour vous de changer de système d'exploitation ? Parce que lorsque vous configurez une application pour Dotnet Core, vous aurez besoin d'IIS, vous aurez besoin de certains logiciels de support d'hébergement basés sur notre serveur Windows. Mais si vous devez passer à un serveur Linux, vous devez vous demander : d'accord, vous devez utiliser Genetics, Apache ou un autre logiciel d' hébergement, une autre version de celui-ci, une autre version de celui-ci. Et c'est le cas. Il est difficile de reproduire l' environnement d'exécution de Windows vers un autre système d'exploitation. Ce sont donc certains des problèmes auxquels nous sommes confrontés lors du développement de logiciels, particulier de logiciels que nous souhaitons exécuter sur n'importe quelle plate-forme. Aucun avantage lié à l'utilisation de conteneurs. Premièrement, nous avons la portabilité. Docker a donc créé une norme industrielle pour les conteneurs afin qu'ils puissent être portables n'importe où. Et je vais parler davantage ce que signifie réellement la capacité des ports. Les conteneurs étant également légers, ils partagent le noyau du système d'exploitation des machines sous-jacentes. Vous n'avez pas besoin de mettre un nouveau système d'exploitation par application, la virtualisation en ligne, où chaque machine virtuelle possède ses propres machines entièrement approvisionnées, pour ainsi dire. Les conteneurs se situent au-dessus d' un système d'exploitation, mais fournissent ensuite un environnement virtuel dans lequel seuls les logiciels nécessaires à l'environnement peuvent être installés. Et puis, par extension, raison de la capacité des ports, une fois que nous avons ce modèle, que nous appelons image de conteneur, nous pouvons le provisionner au-dessus d'un système d'exploitation Windows, Linux ou macOS et obtenir les mêmes résultats à chaque fois. Il y a aussi la question de la sécurité. Désormais, une fois qu'une application est dans un contenant, elle est sûre car vous pouvez toujours l'emporter. Vous pouvez le soulever à nouveau décalé. Et nous pouvons toujours stocker nos secrets afin que personne à qui nous puissions restreindre l'accès au contenu ne soit un peu plus facile que sur une machine virtuelle. Nous examinerons également l'immuabilité. Ainsi, une image qui est le modèle d' un conteneur sera toujours la même lors de sa création. Encore une fois, cela contribue à la portabilité, car s'il existe une image de conteneur pour mon application et qu'elle a besoin de trois bibliothèques pour la prendre en charge, elle me fournira toujours cet environnement. Peu importe où il est approvisionné. Je peux donc être assuré qu' une fois conteneurisé, ce sera toujours pareil. S'il existe une nouvelle version, je devrais créer une toute nouvelle image avec cette nouvelle version. À ce stade, vous avez une image pour la version 1 et une image pour la version 2. La première version ne mettra jamais à jour la version deux. Vous ne voulez donc pas courir le risque de provisionner la mauvaise version car la version que vous allez provisionner est claire . Maintenant, voici un aperçu de l'ensemble de l'apparence de Docker, extrait de la documentation Microsoft. Donc, sur le côté gauche, vous pouvez voir que nous avons les systèmes d'exploitation. Cela peut être Linux, Windows, Engine X égal B, Mac OS ou quoi que ce soit d'autre, quel que soit le noyau sous-jacent. D'où la gauche. Le moteur Docker s'ajoute cela et nous fournit un serveur, un client et une API RESTful. Et tous ces éléments fonctionnent ensemble pour gérer les images créées. Donc, encore une fois, l' image est le modèle. Et en utilisant ce modèle et le serveur Docker, nous pouvons approvisionner des conteneurs, que vous verrez à l'extrême droite. Le conteneur est donc l'instanciation réelle du modèle. Et puis ce modèle peut être rejoué plusieurs fois. Nous pouvons donc avoir plusieurs conteneurs dans la même application pour différentes raisons. Donc, encore une fois, l'image n' est que les modèles. Le conteneur est l' instanciation de ce modèle. Maintenant, j'ai mentionné le plus sombre à plusieurs reprises. Docker est donc une plateforme de conteneurisation utilisée pour développer, expédier et gérer des conteneurs. Docker n' utilise pas d'hyperviseur. Contrairement aux machines virtuelles, vous n'avez pas besoin d'hyperviseur Vous pouvez donc l' installer sur votre ordinateur de bureau ou portable si vous développez et testez des applications. Et surtout, il prend en charge tous les principaux systèmes d'exploitation. Ainsi, quel que soit le système d'exploitation que vous utilisez, Docker le prend en charge. , il prend en charge les charges de travail de production pour de nombreuses variantes de versions Linux et Windows Server. Mieux encore, il est pris en charge par de nombreux fournisseurs de cloud, dont Microsoft Azure. Maintenant, vous verrez également lorsque vous recherchez Docker, Docker Hub. Docker Hub est donc une offre de logiciel en tant que service qui est un registre de conteneurs. Essentiellement, un registre de conteneurs stocke et distribue les images de conteneurs que nous créons à l'aide de Docker Hub. Docker Hub, désolé, vous pouvez réellement héberger l'image de votre application et la distribuer. Et il prend en charge la distribution publique sur les deux. Il soutient également la distribution privée. Ainsi, même au sein de votre organisation, donnez-moi des images d'applications internes que vous gérez. Vous pouvez compter sur Docker Hub pour la confidentialité, mais aussi pour l'hébergement. Maintenant, lorsque nous examinons nos offres de services et de conteneurs zéro , nous avons Azure Container Instances. Azure Container Instances nous permet le Seigneur, d'exécuter des images Docker à la demande. Cela nous permet de récupérer une image à partir d'un registre tel que Docker Hub ou Azure Container Registry. Cela nous amène à Azure Container Registry. Il s'agit d'un service de registre Docker géré basé sur le registre Docker, le registre Docker Open Source vers lequel pointer. Et bien sûr, cela est géré par Microsoft , vous n'avez donc pas à vous soucier des versions. Il s'agit simplement de la norme actuelle. Et cela nous offre une offre de registre privé hébergée dans Azure. Il vous permet également de créer, stocker et de gérer vos images non gérées, malheureusement, pour tous les conteneurs et pour les déploiements. Ainsi, entre Azure Container Instances votre registre de conteneurs, vous disposez d'une bonne base pour commencer à conteneuriser vos applications et stocker les différentes versions des images. Et encore une fois, tout cela peut se faire en privé. Vous pouvez ainsi accélérer vos efforts de développement, réduire vos coûts d'infrastructure et optimiser la mise à disposition de votre application grâce à la conteneurisation. À notre retour, nous commencerons par regarder le trou le plus sombre. Nous pouvons le configurer et comment créer nos premiers conteneurs. Alors restez dans les parages. 3. Configurer le dispositif de quai: Commençons maintenant par configurer Darker sur notre machine et notre voyage commence sur docker.com. Vous pouvez donc, dans votre navigateur, accéder à docker.com, et à partir de là, vous pouvez télécharger le client Docker approprié pour votre machine. J'utilise donc une machine Windows, mais vous pouvez ensuite obtenir une puce supérieure, une puce Linux et une puce Intel pour d'autres types de machines qui ne sont peut-être pas basées sur ces systèmes d'exploitation. Vous pouvez donc l'installer fonction de la manière dont vous devez l'installer pour votre machine particulière. Si vous utilisez la version Windows, il s'agit d'une installation simple à l'aide de l'assistant. Et une fois installé, vous serez amené à installer le sous-système Windows Linux ou le sous-système Windows pour Linux, sous-système WSL que nous avions mentionné précédemment. C'est donc dans la documentation Microsoft. Si vous utilisez uniquement Google Windows, WSL, vous verrez cette documentation apparaître et vous pourrez suivre les instructions. Vous pouvez donc simplement exécuter cette opération en utilisant votre commande partielle ou votre invite de commande en tant qu'administrateur. Et il va continuer à le télécharger et à l'installer pour vous. Maintenant, une fois Docker et le sous-système Windows pour Linux installés, vous pouvez lancer votre bureau Docker. Cela peut donc prendre un certain temps. Je l'ai déjà installé. Vous pouvez voir que je suis en attente ou que je ne l'ai pas fait, mais vous pouvez appuyer sur Pause vous assurer que tout est configuré avant de continuer. Et lorsque vous le faites, vous pouvez lancer votre bureau Docker. D'ici. Vous pouvez regarder les contenants. Si c'est la première fois que vous exécutez Docker, vous n'aurez aucun conteneur dans cette liste. Vous pouvez également regarder des images. Ainsi, à partir de là, vous pouvez réellement comparer les images locales aux images disponibles sur le hub. Nous avons donc mentionné Docker Hub dans la leçon précédente. Donc, ce que vous voulez faire, c'est dans votre navigateur, allez sur hub.docker.com et créez une icône. Je dis que je vais dire non, juste pour vous montrer à quoi vous pouvez vous attendre. Et puis vous pouvez commencer gratuitement dès aujourd'hui. Et une fois que vous avez vos cônes, vous pouvez accéder aux différentes images Docker mises à la disposition du public. Non. Je dis que je le renvoie ici, je consulte mon propre registre où j' ai une image de base de données de patients que j'ai créée. Il est accessible au public. Ce n'est pas très utile. En fait, j'ai créé celui-ci pour mon livre sur le développement de microservices, où j'ai démontré comment vous pouvez conteneuriser différentes parties de votre application de microservices afin de pouvoir obtenir une copie de ce livre si vous le souhaitez du point de vue des microservices. Mais le fait est que depuis Docker Hub, je peux consulter différents registres. Ce sont donc mes référentiels, mais si je clique sur Explorer, je peux regarder différentes images et vous verrez que plusieurs milliers d' images peuvent être utilisées. Je peux donc utiliser n'importe lequel d'entre eux. Peut-être avez-vous besoin d'une instance Redis, vous avez besoin d'une instance SQL Postgres. Et des applications populaires et très populaires ont été conteneurisées et sont mises à votre disposition sous forme images de conteneur pour que vous puissiez instancier des images. Les coûts sont des conteneurs sur votre propre machine. Maintenant, pour le ramener sur Docker Desktop, si vous vous connectez au hub, sachez que vous avez créé un Arkon. Ensuite, à partir de là , vous aurez accès à votre propre référentiel selon vos besoins. Voici donc où j' aurais empaqueté mon conteneur et je l'aurais publié sur le hub, le tout en utilisant Docker Desktop comme outil. Très bien, encore une fois, je peux regarder toutes les images locales que j'aurais extraites. Et une fois que j'ai créé un conteneur, j'y ai accès par la suite. Vous pouvez donc voir ici que j'ai un conteneur RabbitMQ, un conteneur Mongo DB de deux conteneurs pour Microsoft SQL Server et un pour les esquisses 3D. Donc, à notre retour, nous examinerons l' ensemble du week-end dans le monde entier. Il s'agit d'apporter une image et de créer notre propre contenant. 4. Créer un conteneur: À l'heure actuelle, Microsoft SQL Server n'est presque exclusivement utilisable que sur des machines Windows. Maintenant, si vous utilisez Mac ou Linux, ne vous inquiétez pas, il existe toujours une solution pour vous. La solution numéro un serait d'utiliser une machine virtuelle afin d' utiliser VMware ou autre outil prenant en charge la virtualisation. Et vous pouvez lancer une machine virtuelle dotée d'un système d'exploitation Windows, puis l'utiliser. Sachez que cela peut nécessiter beaucoup de ressources. Et je ne vais pas vous faire subir tout cela juste pour utiliser le logiciel. L'alternative à un environnement virtualisé pour Windows serait d'utiliser doc. Je vous encourage à lancer votre terminal. Donc, encore une fois, j'utilise une machine Windows, mais votre terminal sous Linux ou Mac OSX ressemblerait beaucoup à celui-ci. Et vous pouvez simplement exécuter la commande docker pour vous assurer qu'elle est installée. Et si vous voyez quelque chose qui ressemble à ceci, ils ne savaient pas que vous aviez accès aux commandes Docker CLI. Très bien, ce que nous voulons faire à ce stade, c'est exécuter une commande appelée Docker Pull qui consiste à zoomer un peu pour faciliter la lecture. Nous allons donc faire docker, pull, docker, pull. Ensuite, nous allons extraire ce que nous appellerons une image. Docker possède donc des fichiers prédéfinis qui définissent l'environnement requis pour une application particulière. Et c'est ce qu'on appelle des images. L'image que nous voulons est l'image Microsoft MS SQL Server. Nous allons donc créer un docker, appuyer sur cette image pour que vous puissiez appuyer sur pause, en vous assurant de la saisir exactement comme je l'ai fait. Et lorsque vous appuyez sur Entrée, il va se lancer et dire : « OK, je reçois des litres, puis vous allez le voir se télécharger. J'ai donc déjà extrait cette image, donc je l' ai déjà sur ma machine. Mais tu vas voir que ça tire. Et puis il va commencer à afficher vos statistiques sur le chargement terminé. Et en fait, ils ressembleraient davantage à ça. Voici donc une capture d'écran que j'ai prise plus tôt lorsque je l'ai téléchargée. Et vous allez voir que cela va donner naissance à un tas d'objectifs qui ressemblent à celui-ci. Et vous allez avoir ces balises de téléchargement. Une fois cette opération terminée, l'étape suivante consiste à l'exécuter. Pour l'exécuter, vous avez besoin de cette commande. Nous allons donc dire Docker run, puis tiret e, puis nous accepterons le contrat de licence d'utilisation. Donc, ce qui se passe, c'est que SQL Server contient généralement l'un de ces documents dont vous avez besoin pour accepter les termes et conditions. Nous le mettons donc simplement dans un paramètre indiquant que oui, nous acceptons les termes et conditions. Et puis un autre qui dit mot de passe SA. Donc, si vous examinez le processus d'installation lorsque nous utilisons Windows, nous pouvons utiliser l' authentification Windows connecter à la base de données, n'est-ce pas ? Il suffit donc d'un nom de machine et nous pouvons utiliser un utilisateur Windows, l'utilisateur Windows actuel, l' authentification Windows et la déconnexion. Maintenant, comme c'est plus sombre et que c'est un conteneur, il n'y a ni fenêtres, ni portes ni Mark, ni authentification Linux. Ce n'est donc pas vraiment que vous pouvez simplement vous connecter en utilisant l'utilisateur par défaut sur votre ordinateur. Cette étape est donc applicable que vous utilisiez Windows, Mac, Linux, etc. Nous devons donc spécifier un mot de passe SA. ESI est donc l'utilisateur par défaut, ce qui signifie administrateur système, administrateur adjoint. Chaque fois que vous installez un moteur de base de données pour Microsoft SQL Server, vous obtenez cet utilisateur de dissertation. Nous allons donc configurer ce SA, ce passe et vous pouvez saisir le mot de passe de votre choix. Je suis juste en train de saisir un mot de passe fort. Et c'est tout à fait possible que vous puissiez le voir dans d'autres démos que vous pourriez regarder n'importe où sur Internet. Ce mot de passe n'est donc pas nécessairement propre à moi ou à cet exercice. Vous pouvez saisir n'importe quelle valeur de mot de passe avec laquelle vous vous sentez à l'aise et dont vous vous souvenez. Je divise donc simplement le mot mot passe fort, bien sûr, avec des caractères spéciaux, des chiffres et quelques lettres majuscules. Ensuite, nous spécifions le port. Le port situé au front est important et nous voulons le traverser. Le port. À l'autre bout des deux-points se trouve le port vers lequel il sera mappé. Cela signifie donc que SQL Server diffuse par défaut à partir du port 1433, qui est le port par défaut. Donc, sans rien faire, spécifier des ports ou quoi que ce soit d'autre passera toujours par 1433 connexions. Cependant, Docker fonctionne dans ses propres environnements spécialisés, nous devons donc le nettoyer. Il s'agit du port par défaut, puis du port de War Machine qui voudra emprunter un tunnel pour accéder à ce sport. Vous pouvez donc simplement laisser cela comme 14334233. Si vous ne souhaitez pas que SQL Server soit déjà installé et que vous utilisez Mac et Linux, 143 l'est, 33 convient. Vous n'avez rien de plus à faire. Vous pouvez simplement vous connecter. Cependant, comme j' utilise une machine Windows, j'ai dû changer de port car 1433 est déjà occupé par mon installation SQL Server native. Je suis donc en train de vous montrer que vous pouvez utiliser 14331433 par défaut. Ou vous pouvez installer votre propre port spécifique si vous le souhaitez. Puis le suivant. Enfin, nous voyons le trait d'union D, puis nous spécifions l'image que nous voulons exécuter. Donc, en gros, nous disons que docker exécute cette image s'assurant que tous ces paramètres intermédiaires sont configurés. C'est essentiellement ce que nous venons de faire. Ainsi, lorsque vous appuyez sur Entrée et que vous téléchargez celle-ci pour l'exécuter, elle lancera cette image dans l'interface utilisateur plus sombre. Et dans l'interface utilisateur, vous allez voir qu'il y a, vous savez, un récipient sous le récipient. Et tu aurais pu donner un nom au conteneur. Nous n'avons pas spécifié de nom dans la commande, mais vous auriez pu mettre tiret n et lui donner un nom spécifique. Ainsi, lorsque vous ne fournissez pas de nom, vous obtiendrez un nom aléatoire, comme ce que vous voyez ici avec ces noms, moins Docker you, je vais indiquer le type d'image que nous utilisons. Et vous verrez ici les spécifications du port en fonction de ce que nous avions configuré. Donc, comme je l'ai dit, vous pouvez autres ports, ce qui serait bien si vous disposiez plusieurs conteneurs de la même technologie qui bloqueraient le fonctionnement d'un port en particulier. Mais si vous n' avez pas installé la technologie comme avec mon MongoDB, MongoDB n'est pas en cours d' exécution sur ma machine, donc je ne vais pas utiliser de port alternatif. Je vais juste vous dire d' utiliser le port par défaut, le mapper au port par défaut et agir comme le logiciel lui-même. Pour SQL Server. J'ai plusieurs instances en cours d'exécution, et je veux cette instance d'un port spécifique afin de pouvoir y accéder directement lorsque j'ai besoin de me connecter. Maintenant, examinons la connexion. Donc, pour me connecter, je peux utiliser n'importe lequel de mes outils de gestion SQL Server. Nous avons déjà examiné certains de ces outils. Juste pour me rencontrer cette semaine, je vais utiliser le Data Studio et me connecter. Je vais continuer et créer une nouvelle connexion. Et pour le serveur, je vais écrire le nœud hôte local. Le plus sombre sera diffusé chez les hôtes locaux. C'est pourquoi ce numéro de port est important. Parce que la commande localhost 1433 est généralement le moyen de se connecter à l'instance SQL Server installée localement. Si, surtout si vous utilisez un niveau professionnel, entreprise ou développeur, n'est-ce pas ? Ainsi, l'hôte local avec le port me connecterait à l' instance installée par défaut sur ma machine. Cependant, comme je veux l'instance la plus sombre, je dois accéder à l'hôte local et au port spécifique que je lui ai indiqué lors de la configuration du conteneur. Pour l'authentification, je ne peux pas utiliser l' authentification Windows que nous avons établie. Je dois utiliser l' authentification SQL. Et je vais dire essai, puis mot de passe. J'ai oublié. Voici donc un moyen rapide de les récupérer à partir de l'interface utilisateur Dr., si vous oubliez ces valeurs d'environnement . Vous pouvez simplement cliquer sur le conteneur en cours d'exécution et utiliser des repères visuels pour savoir quand il est en cours d'exécution. Ici, il est en cours d'exécution et vous verrez les journaux s'afficher en arrière-plan. Vous pouvez accéder à Inspect, vous pouvez accéder au terminal, etc. Si je vais dans Inspect, je vais voir toutes les variables d' environnement qui ont été configurées. Nous avons donc accepté l'eula. Pourquoi ? Il s'agit d'une variable d' environnement. Voici le mot de passe SA. Et regardez ça. J'ai le mot de passe à ma disposition ici. Chaque fois que vous effectuez ces configurations et que vous définissez des variables d' environnement et que votre esprit oublie où tout est humain, vous pouvez toujours passer au conteneur en cours d'exécution, inspecter et voir les variables d' environnement. Je vais donc revenir ici et saisir le mot de passe. Ensuite, je vais cliquer sur Connecter. Maintenant, je reçois cette erreur indiquant que cela a réussi, mais qu'il a besoin d'une connexion fiable. OK, donc j'étais juste sur le certificat du serveur Shows et je suis là. Je suis maintenant connecté à l'instance SQL Server exécutée dans mon conteneur. Et il s'agit d'un conteneur qui est en fait utilisé dans un autre cours, le développement multiplateforme asp.net Core lequel j'enseigne en attente. Vous pouvez utiliser asp.net Core pour développer une solution dans n'importe quel environnement. Nous faisons donc un peu plus sombre, Isaiah Sean dans ce cours. Et je ne fais que te montrer ça. Je partage simplement cela avec vous pour vous faire savoir que c'est la raison pour laquelle cette base de données existe. Vous n'auriez donc évidemment aucune base de données si vous créiez simplement ce conteneur. Ce conteneur fonctionne comme n'importe quelle autre instance SQL Server. Et tant que le conteneur fonctionne, vous pouvez tout de même interagir avec lui. Vous pouvez vous y connecter, créer des applications pour l'utiliser. Et devinez quoi si je l'arrête ? Je peux donc arrêter ce conteneur à ce stade, n'est-ce pas ? Si j'essaie de faire autre chose ici, exemple d'accéder à la base de données, remarque que mon Data Studio va se bloquer parce qu'il a perdu la connectivité avec la base de données, avec le serveur. Donc, tant que ce conteneur fonctionne. C'est pourquoi nous avons dit que lorsque vous installez un logiciel, vous ne souhaitez pas nécessairement qu'il soit omniprésent et qu'il fonctionne en permanence. Vous voulez l'arrêter, l'arrêter et le démarrer à la demande. C'est là que la conteneurisation peut jouer un rôle important en vous aidant à utiliser les ressources de votre système de manière aussi efficace que possible pendant le développement. Maintenant, sachez que nous avons une certaine expérience de l'extraction d'une image et configuration de notre conteneur. Et ça, ces étapes sont bien documentées, donc je n'invente rien. Vous pouvez trouver tout cela. Une fois que vous avez trouvé l'image intéresse sur Docker Hub, vous pouvez cliquer dessus et voir toutes les méthodes recommandées la configurer sur toutes les variables d' environnement pour la configurer sur toutes les variables d' environnement nécessaires à la configuration. Mais maintenant que nous avons vu comment utiliser une image tierce, faites-le-nous savoir, configurez notre propre application Dotnet Core, regardez un week-end entier, connectez-vous à cette image et comment nous pouvons conteneuriser une application. 5. Configurer . Projet de base NET: Créons maintenant notre propre projet asp.net Core. Et à l'avenir, nous allons le conteneuriser. Nous utilisons donc bien sûr notre solution habituelle. Je vais ajouter un nouveau projet. Et cette fois, je vais me lancer dans un projet d'API. Et je choisis une API uniquement en accord avec le thème selon lequel les conteneurs et la conteneurisation s'intègrent bien à la conception architecturale des microservices. Je vais donc passer ici créer notre nouveau projet d'API. Je vais juste appeler ça un microservice. Une API adopte des conteneurs qui font des démonstrations. Vous pouvez donc réutiliser le nom. Bien sûr, tu n'es pas obligée. Et puis je vais appuyer sur Suivant. Maintenant, dans cette étape, nous pouvons choisir notre type de framework d'authentification et nous pouvons choisir d'activer Darker. Je ne vais donc pas activer l' obscurité ici, nous allons l' ajouter manuellement ou utiliser une méthode différente pour l'ajouter. Mais pour le second microservice, vous verrez la différence lorsque nous le ferons car nous voulons que les choses restent simples. Je vais juste créer une API minimale et nous pouvons appuyer sur Créer. Maintenant, bien sûr, si vous utilisez Visual Studio Code et la CLI dotnet, vous ouvrez votre terminal et vous allez taper la commande dotnet new web hyphen 0 pour la sortie et donner son nom au projet. Ensuite, une fois que c'est fait, vous pouvez créer un CD dans ce dossier nouvellement créé et exécuter code en entier pour lancer Visual Studio Code dans ce dossier. Nous avons donc maintenant notre projet d'API Web standard et nous sommes tous des développeurs, nous savons donc quoi faire. savons que ce code sur une tumeur rare est magnifique et nous nous connectons à notre base de données et à tous ces actifs. Cependant, encore une fois, lorsque nous devons passer de notre machine à l'environnement de développement et que nous déployons, il peut y avoir des différences entre les environnements qui font fonctionner sur votre machine et cela ne fonctionne pas sur def. Et puis nous nous retrouvons avec des excuses, comme si cela marché hier ou que nous disions, eh bien, cela a fonctionné sur ma machine ou qu'il va utiliser votre machine en production. Nous le savons tous. C'est pourquoi la conteneurisation rend notre application beaucoup plus portable et beaucoup plus stable, quel que soit l'endroit où elle est déployée. Maintenant, je vais ajouter des supports de conteneurs à ces applications. J'ai créé l'application et, sérieusement, nous avons supprimé le magnifique code et tout le reste. Mais nous savons que nous en avons besoin dans un conteneur Je suis donc prêt à cliquer avec le bouton droit sur le projet. Ensuite, je vais passer à Ajouter. Et puis vous verrez ici les supports Docker. Donc, lorsque je clique sur Docker, le support me demande : d' accord, quelle est la cible ou si je voulais la laisser sous Linux ? Bien entendu, vous pouvez passer de l'un à l'autre et vous devez vous assurer choisir l' environnement approprié en fonction de la quasi-dépendance des choix de bibliothèques, car tout ne fonctionne pas sous Linux. Mais pour l'instant, cette application simple et dotnet Core est multiplateforme. Je vais utiliser Linux. Je clique sur OK, puis nous obtenons ce nouveau fichier appelé fichier Docker. Ce fichier Docker n'était donc pas là au départ. Mais laissez-nous simplement évaluer ce que fait ce fichier Docker. Et cela semble confus, mais quand vous le lisez jusqu'au bout, vous verrez que, d'accord, c'est quelque chose qui peut être compris. La première chose qu'il fait est d'extraire une image de base. Donc, à partir de là, on prononce le nom de l'image. Rappelez-vous donc que lorsque nous avons effectué notre extraction docker pour SQL Server, nous avons dû spécifier un chemin similaire à celui-ci , où nous avons plutôt dit SQL Server, nous n'avons pas spécifié notre balise. Donc, si vous voulez une version spécifique d'une image, cela signifie qu'il s'agit de l' image, puis de deux points. Ensuite, la valeur après les deux points signifie la balise ou la version spécifique qui vous intéresse. Nous créons donc une application asp.net. Donc, évidemment, nous voudrions que l'image soit une image dotnet seven asp.net. Et puis nous voyons comme base. Ensuite, il va spécifier, d' accord, une fois que vous aurez créé ce conteneur, créera notre répertoire de travail nommé Exposed Ports 84 pour trois. Et puis à partir de cette image du SDK où nous voulons créer. Donc, une fois de plus, spécifiez le répertoire de travail doit être SRC, puis copiez les fichiers depuis le répertoire CSP, n'est-ce pas ? Donc, vous voyez ici, ce ne sont que des chemins. Copiez donc à peu près ce fichier de broche CS à partir de ce chemin , puis exécutez une commande de restauration dotnet. Donc, vous commencez à voir qu'il utilise simplement les mêmes commandes Dotnet CLI que nous utilisons, c'est juste le faire en notre nom, n'est-ce pas ? Il effectue donc une restauration à partir ce fichier CSV et tout ce qu'il contient sera copié. Ensuite, il s'agit de configurer ce répertoire de travail pour qu'il y soit à nouveau. Donc, si je le lis ligne par ligne, bien sûr, c'est logique, non ? Essentiellement, nous allons réexécuter dotnet build en tant que version. Et le résultat va être. Construction en Slash. Il s'agit de répertoires que nous n'avons pas à créer et qui ne sont pas créés sur notre machine. Au lieu de cela, ils seront créés dans le conteneur qui effectue cette compilation du compilateur. Et puis il va dire qu'à partir de cette étape, d'accord, fois cette étape terminée, prenez le nom qu'on lui donne publié. Et ils allaient exécuter la commande de publication, qui produira le même type de publication. Prenez ce qui se trouve dans ce dossier publié. Et ça va lui donner une petite fleur pour dire que «  utiliser un cheval est égal à faux ». Très bien, encore une fois, cela est généré pour nous. Nous ne sommes pas nécessairement tenus de proposer ce fichier. Nous le pouvons. C'est bien de le comprendre, de le modifier, mais en général, ce n'est pas nécessaire. Et après tout cela, depuis la base, le répertoire de travail sera ouvert et tout sera copié depuis la publication de ce répertoire. Et puis le point d'entrée sera cette DLL. Les applications dotnet Core s'exécutent donc généralement sur la base de cette DLL. Et c'est ce qui démarre l'application exécutée dans le conteneur. Maintenant, comment savoir si cela va fonctionner dans un conteneur ? Passons maintenant au projet de démarrage du microservice que nous venons de créer. Et vous verrez que le bouton en forme d' étoile est curieux et plus foncé que tous les autres. Comme si je passais au blazer en HTTPS. Et nous avons déjà examiné les paramètres de la pelouse et nous savons que le profil de lancement contient les protocoles HTTP, HTTPS. Mais si vous regardez ceci, vous verrez qu'il y a maintenant une entrée plus sombre ici. Et l'entrée la plus foncée aura cette URL de lancement avec le swagger. Ainsi, tout est configuré pour vous une fois que vous avez ajouté le fichier Docker. Mais en gros, il va se lancer dans une version plus sombre, n'est-ce pas ? Ainsi, lorsque je passe à ce nouveau projet de démarrage et que je vois run with darker, mon application se lance comme je m'y attendais, d' accord, elle se lance donc dans un navigateur. Et je vais pouvoir m' en servir comme je le souhaite. Quelles preuves ai-je pour savoir qu'il s'exécute dans un conteneur et qu'il n'est pas simplement exécuté par Visual Studio Eh bien, si vous regardez la fenêtre de Visual Studio, le nouveau panneau serait apparu. Vous n'avez donc probablement jamais vu cela auparavant. Conteneurs. Et dans ce panneau, vous voyez que ce conteneur ou l' application hébergée sont en cours d'exécution en tant que conteneur en cours d'exécution, n'est-ce pas ? Non, vous pourrez également consulter toutes les variables d' environnement. Vous verrez donc le développement de la version, toutes ces variables d'environnement que nous n'avons pas laissées , mais qui sont toutes présentes. Nous avons également des ports. Donc, si vous regardez le port ici, vous verrez qu'il crée des ports. N'oubliez pas que nous avons dû créer un port pour créer un tunnel. Donc 21433 lorsque nous faisions notre image SQL Server. Vous verrez donc ici que nous avons un port mappé vers le port 80 et un port mappé vers le port 443. Dans l'un ou l'autre, je peux cliquer et soutenir. Ainsi, lorsque nous examinons l' adresse dans l'interface utilisateur Swagger, nous verrons que nous sommes sur le 769, qui correspond au port 443. Vous remarquerez également que si vous avez interface utilisateur plus sombre ouverte et en cours d'exécution, une interface utilisateur plus sombre ouverte et en cours d'exécution, vous avez un nouveau conteneur avec le nom de l' application également en cours d'exécution. Et il vous montre le port. Et vous pouvez cliquer pour afficher tous les ports. Ce sont donc tous des indices visuels et des preuves que nous n'avons pas d'application conteneurisée. Et il s'agit d'un microservice. Encore une fois, cela ne se limite pas aux microservices, mais il est recommandé microservices, car cela permet à chaque microservice de vivre dans son propre environnement, indépendamment de tous les autres services ayant ses propres dépendances et tout ce dont il a besoin pour fonctionner efficacement. Et encore une fois, il est portable. Si vous utilisez Visual Studio Code et que vous souhaitez conteneuriser l' application que vous avez ici, vous devrez vous procurer les extensions pour Darker. Donc, si vous allez simplement dans Extensions et que vous pouvez simplement rechercher Docker, installez-le. J'essayais de le faire défiler et de le trouver, mais vous pouvez simplement rechercher plus sombre et installer l'extension Docker. Assurez-vous d' obtenir celui de Microsoft. Ensuite, une fois que vous l'aurez obtenu, vous aurez cet onglet qui vous permet de voir tous les conteneurs . Il vous donne un résultat similaire, je ne veux pas dire similaire, mais il vous donne suffisamment d'informations par rapport à ce que vous auriez dans Visual Studio à propos des conteneurs en cours d'exécution, ainsi que les différentes images que vous avez à votre disposition si vous avez extrait sur plusieurs images, laissez-nous conteneuriser cette application particulière. C'est ce que nous avons provisionné dans notre code Visual Studio. Dans Visual Studio Code, maintenez les touches Control Shift et P enfoncées, et vous verrez Traitor afficher toutes les commandes. Donc, Control Shift N P et cela lancera notre palette de commandes. Et puis vous verrez ici que E a la possibilité d' ajouter un fichier Docker. Si vous ne voyez pas cette option, vous pouvez simplement commencer à taper Docker et elle apparaîtra quand même. Souvenez-vous donc de cet ajout. Le support Docker consiste en fait à ajouter un fichier Docker. Donc, si nous sélectionnons cela, je peux spécifier le type d'application que je souhaite prendre en charge. Il s'agit donc d'une application asp.net Core. Ensuite, nous pouvons à nouveau spécifier le système d'exploitation et spécifier les ports. Je vais quitter ce port. Ça me convient. Je peux choisir si je veux un fichier Docker Compose, nous examinerons docker-compose plus tard, quelqu'un qui dira non pour le moment. Ensuite, il va générer ce fichier Docker pour moi en utilisant une syntaxe très similaire à que nous venons de voir dans Visual Studio. Maintenant, pour exécuter cette API en version plus foncée à partir de Visual Studio Code, nous pouvons accéder à l'onglet Debug, puis choisir dans la liste déroulante, le jeu Dotnet plus sombre. Ensuite, lancez-le à nouveau, voyez une activité se dérouler ici dans le terminal. Et si vous regardez de plus près, vous verrez que les poumons sont très similaires à ceux que vous auriez pu voir dans Visual Studio lorsqu' il était en cours d'exécution, mais qu'il exécute certaines commandes Docker en arrière-plan. Et puis, après un certain temps, nous n'allons pas commencer à faire fonctionner notre obscurité. Et nous voyons Hello World. Il s'agissait d'un simple point de terminaison d'API qui renvoyait simplement HelloWorld. Si nous regardons dans notre interface utilisateur plus sombre, vous verrez le nouveau conteneur s'exécuter également avec le nom. Très bien, nous avons donc le port 32771 qui fonctionne à nouveau, Sports 5099. Nous aurions donc pu préciser que nous voulions 84 pour trois pour cette édition. J'aurais pu dire 80 virgules 443 quand il m'a posé des questions sur les ports. Je ne l'ai pas fait, mais je vous fais simplement savoir que c'était une option qui aurait donné une cartographie similaire à celle que nous avons ici. Vous savez maintenant comment conteneuriser votre application Dotnet Core en utilisant à la fois Visual Studio et Visual Studio Code. Bien sûr, nous sommes toujours en phase de débogage. Je vais donc arrêter le débogage. Cela nous permet de déboguer des applications lorsqu'elles se trouvent dans un conteneur. Maintenant, si nous reprenons les étapes pour ajouter un nouveau projet, laissez-moi ajouter un nouveau projet. Je suis désolée. Lorsque nous avons ajouté le projet, nous avions la possibilité d' ajouter un support plus sombre. Je vais donc juste cliquer sur un élément aléatoire ici. Et nous avions la possibilité d'activer Docker. Tout cela nous aurait donc permis de choisir le système d'exploitation ici, puis il aurait généré ou projeté le fichier Docker déjà provisionné. Vous pouvez le faire dès le départ si vous savez que vous allez l' utiliser plus sombre ou vous pouvez facilement l'ajouter par la suite lorsque vos ambitions auront atteint ce point. Non, c'est fait. Il est sept heures. Il existe des commandes dotnet que nous pouvons utiliser pour publier notre application dans un conteneur sans avoir besoin d'un fichier Docker. Un fichier Docker peut être utilisé pour n'importe quelle version de dotnet et il est universel. Vous n'avez pas à vous inquiéter si vous utilisez un fichier Docker. Mais à notre retour, nous verrons comment utiliser les commandes Dotnet natives pour conteneuriser ou augmenter. 6. Contenez. Application NET: Dans cette leçon, nous allons voir comment conteneuriser un dotnet up à l'aide de dotnet publish ou des commandes natives de la CLI dotnet. C'est la seule version, moins au moment de l'enregistrement, à dominer les sept, et je suis sûr qu'elle sera disponible dans des versions ultérieures. Jusqu'à présent, dotnet 6 et versions antérieures, vous avez toujours besoin du fichier Docker. Cependant, si nous allons de l'avant avec ses sept, nous pouvons le faire. Je vais juste me lancer et créer un nouveau projet. Et je vais juste utiliser Visual Studio pour cette démo, mais vous pouvez me suivre en utilisant Visual Studio Code. La plupart seront pilotés par la ligne de commande. Mais je vais créer d' autres API de microservices. Je vais appeler ce microservice conteneurs API Dot qui font la démonstration. Et allons-y et créons cela. Je n'ajoute pas le support Docker. Je ne change rien à la configuration précédente. Et maintenant, nous avons notre nouveau projet. Donc, pour ce nouveau projet, nous devons ajouter un nouveau package, n'est-ce pas ? Nous allons donc utiliser la commande Dotnet CLI. J'utilise dotnet CLI parce que tout le monde peut l'utiliser, que vous soyez dans Visual Studio ou Visual Studio code. Je vais donc simplement lancer le terminal ici dans Visual Studio. Et je vais exécuter la commande dotnet add package et nous ajouterons des conteneurs microsoft.net dot build dot. Alors allez-y et installez ce package. Maintenant que ce package est installé, nous pouvons le vérifier en cliquant simplement sur le fichier de projet CS et vous le verrez ici. Maintenant, lorsque nous voulons donner un nom à notre conteneur, il se peut que nous ayons noms non valides en tant que projets. Donc, si vous vouliez changer le nom, vous pouvez ajouter un nœud ici, dans la section Property Group du CSB Raj. Et ce serait un conteneur et j' aurais la bonne orthographe de l'image Nim. Et puis avec ce nœud, vous pouvez lui donner un autre nom. Je vais donc l'appeler un microservice macroéconomique. Dash pour écrire juste quelque chose. C'est un microservice point à point api point Clinton est cette démo. Je voudrais l'arrêter pour qu'elle s'appelle simplement microservice Dash to Write, juste pour vous montrer que nous pouvons renommer l'image elle-même avant qu'elle ne soit publiée. Maintenant, quand je suis prêt à publier en utilisant les réseaux de points, encore une fois les réseaux jaunes, je peux dire dotnet publish et je vais spécifier le système d'exploitation. Donc Dash, Dash OS, et je vais m'en tenir à Linux et Dash, Dash Arc. Et nous spécifions 64 pour montrer que nous voulons un 64 bits. Ensuite, nous disons barre oblique pour publier un conteneur, puis nous disons barre oblique pour publier une version C. Donc, avec tout cela, ce que nous faisons ici, nous constatons que nous voulons la configuration de la version, c' est-à-dire le tiret C. Une fois de plus, le tableau de bord indique une architecture 64 bits. Et nous précisons que nous voulons un système d'exploitation, un système d'exploitation basé sur Linux. Sachez que lorsque cette commande est exécutée, vous verrez que j'ai imprimé quelques journaux, mais allez-y, exécutez-la . Appuyez sur Pause. Quand ce sera fait, nous pourrons vous aider ensemble. Mais surtout, vous allez le voir pour créer l'image avec le nom de conteneur spécifié. Si nous n'avions pas spécifié ce nœud de nom de conteneur, vous auriez obtenu une image similaire au nom du projet que nous avons vu auparavant. Ce ne sont donc que de petites pépites que vous pouvez garder à l'esprit. Le fait est que chaque fois que nous devons configurer cette image de manière similaire à l'ensemble, le fichier Docker configure toutes sortes d'environnements, c'est-à-dire faux, etc. Pour le conteneur, nous pouvons en fait spécifier un nœud différent ici. Donc, si je voulais, disons que nous utilisions dotnet 6.7, je voulais juste un dotnet six Runtime. Cette image, je pourrais en fait venir ici et spécifier l'image du conteneur, puis saisir le nom de l'image. Voyons donc si je voulais le runtime pour Dotnet Six. J'ai pu voir MCR, microsoft.com.net slash runtime, puis la balise pour 6.0. D'accord, si je voulais autre chose, par exemple si je voulais taguer cette image moi-même, je pourrais le spécifier. Et je vais juste supprimer celui-ci. C'était un exemple, mais je pouvais spécifier la balise d'image du conteneur. Cela me permettrait ensuite de définir ma propre version de cette chasse ou de cette image que je défends. Disons qu'après correction d'un bogue, l'image d'origine était 1.2, 0.0. Mais j'ai peut-être corrigé un bogue. Je sais que je veux que ce soit 1.2, 0.1. Et puis, si je réexécute la commande, nous verrons que nous obtiendrons une toute nouvelle image avec cette version de balise. Nous y voilà. Je viens donc de réexécuter la commande. Je sais que j'ai la nouvelle image avec la balise 1.0, 0.1. Maintenant, n'oubliez pas de sauvegarder le fichier CS Bridge et c' est pourquoi j'ai tant de courses. Cela m'est arrivé la première fois que je ne l'ai pas vu. Chaque fois que vous apportez une modification ici, vous devez le constater, car ne s' agit pas d'une opération de génération, il ne s' agit pas d'une opération de génération, mais d'une opération non publiée. Donc, si vous n'enregistrez pas, il ne verra pas que le changement est de pouvoir continuer et pousser. Il existe plusieurs autres éléments que vous pouvez réellement ajouter lorsque vous configurez l' image de votre application à partir de ce moment. Ainsi, si vous souhaitez avoir plusieurs balises, vous pouvez réellement voir les balises d'une image de conteneur. Remarquez que le S est différent de la bascule. Vous pouvez également spécifier différents noms de version l'aide de techniques de contrôle de version alphanumériques et sémantiques. Et vous voudrez simplement utiliser un point-virgule pour séparer chaque balise de version. Vous pouvez également ajouter un groupe d'éléments dans lequel vous pouvez ajouter des métadonnées supplémentaires. Vous pouvez donc configurer les ports de conteneur que vous souhaitez attribuer à ce conteneur une fois l'image créée. Vous pouvez également créer une variable d' environnement de conteneur. Et cela, nous l'avons déjà vu, en particulier lors de la configuration notre conteneur SQL Server où nous avons dû accepter le contrat de licence. Nous allons donc simplement créer cette variable. Ainsi, chaque fois que le conteneur tourne, cette valeur variable est disponible. Ici, où il se trouve dans l' enregistreur, la verbosité me permet de tracer. Cela signifie que ce conteneur est censé autant d'informations générées par notre dotnet Core up, d'accord, et nous savons que les core ups peuvent être un peu bavards, donc il devrait cracher tout cela sur la console du conteneur. Un autre exemple de variable d' environnement que vous souhaiterez peut-être définir serait une variable pour l' environnement ASP NET Core. Donc, ici, lorsque nous l' exécuterons localement, le développement se fera en tant que variable d' environnement. Cependant, lorsque nous publions et publions la configuration, cette variable est considérée comme production. Nous pourrions en fait remplacer ce paramètre par défaut et voir quand vous vous trouvez dans ce conteneur Je veux que cette variable d'environnement soit le développement ou le QE, le staging ou la production, etc. C'est ainsi que vous pouvez envisager l'utilisation de variables d' environnement. Vous pouvez également ajouter des étiquettes et des étiquettes pour faciliter les métadonnées et la liste lorsqu'elles se trouvent dans le registre. Nous pouvons également spécifier le registre ici, mais nous n'y sommes pas encore tout à fait prêts. fois tout cela fait, je peux faire un autre effort et créer cette image ou la mettre à jour. Il s'agit donc encore une fois d' images et non de conteneurs. Maintenant, je veux réellement exécuter mon image pour m'assurer qu' elle existe. Je peux passer à l'interface utilisateur la plus sombre, descendre aux images. Et puis vous verrez ici que vous avez toutes les versions des images que vous auriez publiées devraient se trouver ici. Vous voyez donc ici que c'est 1,0 point, 0,1, 0,0, 0,1. Et si je sélectionne l'une ou l'autre, vous verrez cette section intitulée couches, où se trouvent toutes des lignes, les différentes étapes à suivre pour finalement créer le conteneur de cette application. Si je passe aux images, vous verrez qu'il utilise l' image DBN parce que j'ai dit que je voulais Linux et qu'il utilise l' image que j'ai créée. Donc, pour exécuter cela, nous pouvons en fait cliquer sur l'image, puis cliquer sur Exécuter. En fait, je n'aime pas faire ça, non ? En fait, je préfère utiliser la ligne de commande. Maintenant, à côté d'elle, vous verrez tirer et pousser le moyeu. C'est donc notre image locale, il n'y a donc rien à redire. Mais si nous faisons un sondage, cela signifie que vous obtiendrez la version mise à jour de cette image, surtout si elle est censée être la plus récente. Comme vous l'avez vu, nous avons pu mettre à jour l'image avec le même tag. Donc, s'il y a des mises à jour sur cette version, nous pouvons toujours la récupérer et elle fera une mise à jour. Nous pouvons également transférer le hub, ce qui signifie que c'est ici que nous allons effectuer le transfert de notre référentiel local vers Docker Hub. Je vous aurais déjà montré, ouah, qu'au moins lorsque l'IVR continue à pousser le hub, vous pouvez voir votre propre conteneur dans le hub et le remettre vers le bas sur n'importe quelle autre machine selon vos besoins et commencer à travailler. Il est donc facile de commémorer votre conteneur une fois que vous l'avez créé. Allons-y et gérons ce nouveau conteneur. Donc, ce que je vais faire, c'est lancer une fenêtre de terminal et agrandir celle-ci. Je m'excuse donc si l'utilisation de celui dans Visual Studio vous fait mal aux yeux. Ce que j'espère savoir. J'utilise donc une fenêtre de terminal. J'ai déjà consulté le répertoire où se trouve la démo de l'API de notre outil de microservices. Et ce que je vais faire ici, c'est exécuter une commande qui dit docker run. Nous avons donc déjà vu cette commande docker run, n'est-ce pas ? Je vais spécifier Dash, IT, spécifier un port. Je vais donc dire que je veux qu'il fonctionne. Sur le port 80. 80 et cela devrait aboutir au port 84, trafic jaune. Je ne veux rien compliquer et utiliser 443. Ensuite, je vais spécifier le nom de l'image. Donc, outil de tiret de microservice, et je peux spécifier la cible si je le souhaite ou non. Alors laissez-moi poursuivre et appuyer sur Entrée. Voyons ce qui va se passer. Vous pouvez donc voir comment trouver une image avec les dernières. Il est donc très important que vous définissiez la dernière balise sur tout ce qui doit être extrait par défaut. Permettez-moi donc de spécifier cette balise, qui est 1.0, 0.1, puis réessayez. Et cette fois, il va en fait générer des journaux qui ressemblent à des journaux qui ressemblent journaux d'applications asp.net Core. Que se passera-t-il si j'essaie d'accéder à l'application ? Nous avons donc dit que l' application devait être active au port 80, 80. Donc, quand j'ouvre un navigateur et que j'accède au port hôte local 80, 80. Ensuite, j'ai ajouté des prévisions météorologiques, qui sont le point final de cette API. Nous constatons que nous sommes en train de récupérer notre API. Et nous verrons également que nous avons un petit message à venir à propos la redirection HTTPS, c'est bien pour le moment. Si nous regardons dans l'interface utilisateur plus sombre, nous verrons qu'un nouveau conteneur est également en cours d'exécution. Et celui-ci est, je ne sais pas quel est ce nom, mais encore une fois, nous aurions pu le spécifier dans l'exécution de Docker si nous le voulions. Si je clique dessus, vous verrez qu'il crache également des journaux par ici. Vous pouvez donc regarder les journaux depuis la console, vous pouvez regarder les journaux à partir d'ici. Et en fait, la raison pour laquelle il est diffusé sur la console qui l'a lancé. Permettez-moi d'arrêter cela et de recommencer la commande d'exécution. La raison pour laquelle il a pris le contrôle de la console est que nous n'avons pas spécifié Dash D, ce qui signifie que nous voulons qu' il s' exécute en tant que démon en arrière-plan ici. Ça l'est, ça libère la console. Très bien, voici une autre petite information que vous pouvez utiliser pour libérer la console lorsque vous souhaitez exécuter votre conteneur Docker, mais que vous ne voulez pas qu'il prenne le dessus sur la console. Le conteneur Docker fonctionne donc à nouveau. Je n'ai eu qu'à descendre et à rentrer. Et vous verrez qu'il fonctionne à nouveau. Et nous pouvons voir la console à partir d' ici sans prendre le contrôle de notre console locale. Vous voyez maintenant comment conteneuriser votre application Dotnet Core à l'aide vos commandes Dotnet CLI et de certaines configurations. Lisez la documentation à laquelle vous pouvez jouer et vous pouvez configurer différentes configurations qui vous conviennent. Mais je vous laisse le soin de le faire. Maintenant, à notre retour, nous verrons comment utiliser docker-compose pour gérer l'orchestration de plusieurs applications conteneurisées. 7. Orchestration avec dresser: Nous avons donc déjà une idée de ce qu'est l'orchestration de conteneurs. L'orchestration de conteneurs signifie essentiellement que nous disposons plusieurs conteneurs et que nous devons être en mesure orchestrer le début des fêtes de fin d'année. Pourquoi commencent-ils ? Si, si l'un dépend de l'autre, lequel commence en premier, etc. Il y a donc plusieurs choses que nous devons configurer pour nos conteneurs avant que le mot ne commence réellement. Donc, si j'ai, exemple, une application de microservices, et que tous ces microservices existent dans leurs propres conteneurs. Mais pour que l'application fonctionne, toutes ces applications doivent être opérationnelles simultanément. Ensuite, nous voudrions nous assurer de disposer d'une méthode très reproductible les faire fonctionner tous en même temps. C'est là qu'intervient Docker Compose. Je vais donc simplement ajouter des supports plus sombres à notre deuxième API. Et simplement en cliquant avec le bouton droit de la souris et en suivant l'assistant, bien sûr , vous savez, pour le faire également dans Visual Studio Code. Mais maintenant, nous avons un fichier Docker existant dans ces deux applications. Maintenant, lorsque je clique à nouveau avec le bouton droit de la souris, je peux ajouter des supports d' orchestration de conteneurs. Donc, quand je clique dessus, il me demande : OK, quel orchestrateur dois-je utiliser ? Et par défaut, j'y aurai Docker Compose. Je vais donc simplement continuer et cliquer sur OK. Confirmez que je souhaite utiliser le système d'exploitation Linux. Et cela va générer un nouveau projet avec de nouveaux fichiers. Le premier fichier ici est un ignore plus sombre. À l'instar de notre fichier gitignore, il y a certaines choses que nous n'avons pas nécessairement besoin d' apporter avec le conteneur et tout le reste. Il s'agit donc simplement de dire d' ignorer tout cela et de compiler tout le reste. Nous avons également les paramètres de pelouse que JSON, ce qui nous donne un Docker Compose lancé assis AUC, ici. Maintenant, elle prend le dessus. Nous pouvons simplement dire docker-compose et l'exécuter une fois ici dans Visual Studio. Donc, avec cela, nous pouvons simplement faire tourner tout ce que dit le fichier de composition Docker. Non ou Docker. Le fichier de composition Docker comporte deux parties. Nous avons le trait d'union plus foncé pour composer et nous avons la substitution. Ou le remplacement nous permet de spécifier certains paramètres que nous voulons pour chaque conteneur. Alors, laissez-moi d'abord partir du fichier principal. Ici, je vois que je le ferai, la version a été définie. Je ne veux pas changer ça. Et puis nous avons une section pour les services. Et puis, sous la rubrique services, nous avons notre premier service qui est le microservice, un service que nous avions spécifié. Nous souhaitons ajouter l'orchestration et la prise en charge de. Il va donc dire, eh bien, quand je créerai ce conteneur, j'appellerai l'image quel que soit le nom généré, en mettant ce nom par un trait d'union. Ensuite, je vais bien construire en utilisant le contexte, où que se trouve le projet et où que se trouve le fichier Docker ou les instructions de configuration sur la façon dont ce conteneur doit être généré existent dans le fichier Docker de notre projet. Ainsi, pour autant d'applications que vous avez besoin de lancer en même temps lors du développement. Vous pouvez ajouter une orchestration et un support. Je peux donc également ajouter l' orchestration et le support au deuxième microservice et au troisième n au n. Donc, si je recommence et que je spécifie les mêmes paramètres, vous verrez que j'ai maintenant un deuxième microservice dans ce fichier. Agréable et facile. Donc, si je passe au fichier de composition Docker et qu'il s'agrandit parce que maintenant nous avons que maintenant nous avons deux services différents et autant de services que vous en avez, vous avez peut-être des remplacements R-naught. Mais ici, nous précisons que l'environnement doit être le développement. Nous pouvons toujours modifier cela en fonction de nos besoins. Donc, pendant que nous sommes dans Visual Studio, bien sûr, cette variable d'environnement devra certainement être en cours de développement. Nous pouvons spécifier que nous voulons des ports HTTPS et HTTP. Nous y voilà. Ensuite, nous pouvons spécifier les volumes. Ainsi, un volume en orange plus foncé, la conteneurisation est essentiellement une ère de stockage et de persistance. Ainsi, lorsque le conteneur est en cours d'exécution, nous ne voulons pas perdre les données. Lorsque nous avons démarré le conteneur, il devrait se souvenir du dernier endroit où il se trouvait. C'est donc particulièrement important pour les conteneurs de base de données et les conteneurs d' esquisse prêts à l'emploi, etc. Ainsi, lorsque nous parlons de volumes , nous disons simplement que nous voulons stocker les secrets de l'utilisateur. Nous voulons également stocker certaines autres configurations, d'accord ? Quelles que soient ces configurations, veuillez les conserver même lorsqu' un conteneur n'est pas en cours d'exécution. Maintenant que nous avons un aperçu rapide de ce à quoi ressemble réellement notre conteneurisation ou Docker Compose, ou Docker Compose and override fichiers. Allons-y et voyons ce qui se passe lorsque nous exécutons Docker Compose. Donc je vais juste appuyer sur Run. Et dans notre navigateur, nous avons notre premier microservice en cours d'exécution. Aujourd'hui, le premier microservice a été créé avec le support de Swagger. Nous voyons comment nous pouvons atteindre ce point final. Mais si je reviens à Visual Studio, vous remarquerez que dans la section consacrée aux conteneurs, vous verrez que j'ai le microservice One Container, donc j'en ai un existant pour celui-ci. Il s'agit donc de créer un tout nouveau conteneur basé sur le docker compose. Et il crée un conteneur pour le second microservice. Et juste en cliquant dessus une fois, il a pu lancer ces deux services qui peuvent ou non dépendre l'un de l'autre. Si je regarde dans l'interface utilisateur plus sombre, vous verrez qu' une nouvelle section Docker Compose apparaît. Et cette section Docker Compose contient les deux conteneurs pour les microservices. Il dispose également de différents ports pour chacun d'entre eux. Je peux donc facilement accéder à l'un ou l'autre. Et je peux les arrêter tous d'un seul coup. J'aurais également pu, j'aurais probablement dû l' arrêter depuis Visual Studio. Maintenant que nous comprenons comment fonctionnent Docker Compose et son orchestration. Et il y a un autre niveau où nous introduirons Kubernetes 0s, qui fait bien plus que simplement faire tourner des conteneurs. Mais nous y reviendrons brièvement plus tard. Dans la leçon suivante, nous allons passer à Microsoft Azure et créer notre service Container Registry. Ensuite, regardez comment nous pouvons transférer nos conteneurs vers ce registre. 8. Registre des conteneurs Azure: Très bien, revenons à notre portail et nous allons nous lancer notre portail et nous allons nous dans la recherche du registre des conteneurs. Il s'agit donc d'un conteneur de recherche. Et nous voulons des registres. Et nous allons créer notre propre registre de conteneurs. Donc, comme d'habitude, nous allons remplir ce formulaire. Je le place donc dans le groupe de ressources habituel. Je lui ai donné un nom. Et notez qu'il a des règles de dénomination très strictes. Donc, les tirets, je ne suis pas une charge ou les caractères spéciaux ne sont pas autorisés. Donc j'appelle le mien, ce n'est pas un cours ACR. Et en choisissant l' emplacement qui me convient le mieux, et j'utilise le biais de base. Cela coûtera donc un peu d'argent. Soyez donc conscient de cela. Alors allons-y, révisons et créons. Une fois cela fait, nous pouvons passer à notre ressource. Nous avons maintenant le tableau de bord habituel qui nous indique la quantité d'espace de stockage dont nous disposons et nous indique la quantité d'espace de stockage dont nous disposons la quantité utilisée. Nous avons même une adresse URL publique vers notre registre. N'oubliez donc pas que même s'il s'agit d'une URL publique et que les registres sont privés, que vous pouvez utiliser Microsoft comme vôtre, gérer les utilisateurs et tout ce que vous utilisez dans votre organisation, vous pouvez ajouter votre propre sécurité à votre registre privé pour vous assurer que les développeurs peuvent extraire, et corriger les images des conteneurs en conséquence. Nous disposons également de référentiels auxquels nous pouvons connecter nos outils pour pouvoir les gérer, les extraire et les envoyer. Donc, si je passe aux clés d'accès, je pourrai me connecter en tant qu'utilisateur administrateur. Voici donc un nom de registre qui correspond au serveur de connexion et qui utilise les informations d'identification de l'utilisateur administrateur. Maintenant que j'ai accès au nom d'utilisateur et au mot de passe au niveau administrateur, je peux lancer mon terminal. Et je vais lancer une connexion Docker, suivie du nom de l'adresse de notre serveur de connexion, qui est, dans mon cas, est-ce un cheval, point ECR comme votre CR ? Je vais donc continuer et appuyer sur Entrée. Ensuite, il va me demander le nom d'utilisateur. Je vais donc simplement copier et coller cette partie. Et puis le mot de passe, que je vais bien sûr simplement copier depuis le portail en utilisant le terminal et en appuyant sur Entrée. Et puis je vais voir, Logan a réussi. Maintenant, j'ai juste effacé l' écran pour que nous puissions avoir une nouvelle page. Mais une alternative à l'utilisation du login docker serait d'utiliser la commande bash is a login. Une fois que vous l'aurez fait, cela vous permettra de passer à zéro. Authentification auprès de Microsoft sous forme zéros et de uns, vous êtes authentifié. Vous pouvez ensuite voir s'il s' agit d'une connexion ACR, puis spécifier le nom du registre auquel vous vous connectez, ce qui serait « grossier » ? Et vous n'avez pas besoin d'ouvrir le serveur de connexion complet, il vous suffit de dire le nom du registre et cela vous connectera tout de même au registre. Ce sont donc deux façons dont vous pouvez réellement procéder et vous authentifier. Maintenant, voyons comment déplacer l'image. Je vais donc utiliser l'image docker pour notre outil de microservice uniquement parce que son nom est plus court Il est donc plus facile d' utiliser ce nom. Très bien, donc le microservice Dash Two, c'est ce que nous allons pour faire revivre l'histoire. Nous allons donc commencer par cette balise docker de commande. Ensuite, je suis allé préciser le nom et la version correspondante parce que nous n'avons pas parlé d'élitiste. Je ne fais donc que spécifier la version ici. Et je l'étiquette avec un alias relatif à l'adresse de registre à laquelle je veux qu'il soit trouvé. Très bien, alors qu'est-ce que cela signifie ? Cela signifie que je prends cette image locale et que je vais l' envoyer à cette adresse dans ce référentiel, et elle devrait s'appeler ainsi. Désormais, en omettant de spécifier un tag, celui-ci sera automatiquement marqué comme étant le plus récent. Donc, bien sûr, si je voulais conserver la même version, je peux simplement spécifier la version en conséquence. Eh bien, je suis parti laisser la version de cet entonnoir. Donc, lorsque je fais ce tag, j'appuie sur Entrée. La deuxième étape serait de faire un effort. Je voulais donc dire Docker push. Ensuite, je vais envoyer l' image du conteneur avec alias nul. Ça va ? Et puis cela va à nouveau se connecter à notre registre. Il va utiliser la balise par défaut la plus récente et l'envoyer à cette adresse. Donc, cette barre oblique de registre, c'est ce que nous appellerons un référentiel et ce nom. Donc, une fois que cela sera terminé, si je retourne sur le portail et que je regarde dans les référentiels, je ne verrai pas que c'est notre référentiel. Et quand je clique dessus, je vois que j' ai le dernier tag associé à cette image. Très bien, et à partir de là, je peux faire un sondage si je le souhaite et le retirer du registre à volonté. C'est un bon moyen de conserver vos applications conteneurisées et de les conserver dans un registre afin que les développeurs puissent les récupérer lorsqu'elles sont prêtes. Et lorsque vous avez une équipe qui alterne et que vous avez des configurations environnementales complexes, c'est très, très important et facile à utiliser, car l'équipe peut alors simplement extraire ces images et faire fonctionner l'application sur son environnement avec une configuration minimale. Donc, si je copie ceci et que je fais une extraction dans le docker juste après, je vais simplement relancer le terminal et coller That's a dark pool . Il est extrait directement du référentiel avec le tag latest et j'appuie sur Entrée. Ensuite, vous pouvez accéder à la liste des images dans l' interface utilisateur plus sombre de Docker Desktop, et vous verrez cette image ici disponible pour utilisation. Très bien, je peux donc simplement cliquer dessus et lancer l' application ou utiliser ma commande docker run que je préfère utiliser, pour commencer à l'utiliser. Maintenant, une autre façon de voir toutes les images que vous avez est d' utiliser la commande docker images. Et cela listera toutes les images actuellement disponibles, ainsi que leurs identifiants. Donc, si je voulais supprimer une image, disons que je voulais supprimer la version 1.0 de mon ordinateur. Je peux prendre cette valeur d'identification. Ensuite, je peux voir un RMA plus sombre, qui est l'abréviation de supprimer l'image et coller dans cet identifiant, puis il va la supprimer pour moi. De même, si j' utilise Docker Desktop, je peux toujours accéder à l' image et appuyer sur le bouton. Vous voyez donc que vous pouvez trouver un équilibre entre les éléments de l'interface utilisateur et les commandes. Mais au moins maintenant, nous savons comment transférer notre image dans notre registre sur Microsoft Azure. Ensuite, nous pouvons faire autant de pools que nécessaire sur ce registre. Encore une fois, c'est excellent pour l'organisation. Les quatre conteneurs pour différentes applications. Notre équipe de développement aura peut-être besoin d'y accéder au fur et à mesure. 9. Instances de conteneur Azure: Revenons maintenant à notre portail et passons à notre service de registre des conteneurs. Nous avons maintenant l'idée de provisionner réellement l' image en tant que conteneur. Nous l'avons fait localement, faisons-le dans le Cloud. Il existe maintenant plusieurs moyens. La méthode la plus simple que je vais vous montrer dans cette leçon est d' utiliser les instances comme conteneur. Cela nous permet donc de provisionner des conteneurs la volée sur la base d'une image et de les héberger dans le cloud. Donc, si je passe aux référentiels et regarde notre image publiée ici, que je regarde notre image publiée ici, vous voyez que vous avez la possibilité d'accéder à la balise, la version spécifique que vous souhaitez. Ensuite, vous pouvez voir instances d' exécution sont déployées sur l'application Web. Nous allons donc faire les deux. Commençons par l'instance de Ron. Ici. Cela va lancer la lame de création de l'instance Container. Je vais donc simplement appeler ce microservice Dash Two parce que c'est le seul que nous ayons mis au clair. Microservice Dash Two, nous allons tout laisser par défaut, utiliser le même groupe de ressources, l'emplacement approprié. Nous pouvons spécifier les ressources que nous voulons pour ce conteneur et nous pouvons spécifier que nous voulons une adresse IP publique. Je vais dire oui. Et je vais maintenant le laisser diffuser sur un port 84. Et allons-y et appuyons sur Créer. Et une fois ce processus de création terminé, nous pouvons passer à la ressource. À partir de là notre application de microservice provisionnée dans Container Instances. Nous pouvons donc redémarrer, arrêter, supprimer ce conteneur. Et nous verrons ici que nous avons un conteneur en cours d'exécution dans le service Container Instances et que nous avons une adresse IP publique. Vous pouvez maintenant obtenir un nom complet, mais vous devez généralement définir cette valeur lorsque vous suivez les configuration de l' assistant Porto étapes normales de configuration de l' assistant Porto, où vous devez tout remplir, les bases et la mise en réseau, etc., etc. Ou si vous utilisez la commande. Pour l'instant, nous avons choisi la voie la plus facile et nous pouvons revenir en arrière et regarder à quoi ressemble le sorcier. Mais pour l'instant, je vais simplement accéder à l'API diploïde via cette adresse IP publique. Donc, si j'ouvre un nouvel onglet et que je tape adresse IP publique et que je tape simplement ce point de terminaison des prévisions météorologiques. Puisque c'est la seule chose qui existe. Permettez-moi de corriger mon orthographe et de réessayer. Nous y voilà. Nous arrivons donc ici à l'API diploïde à l'intérieur de ce conteneur. Et ce conteneur s'exécute sur notre service Container Instance dans le cloud. Bien entendu, si nous ajoutons un nom de domaine complet , nous serons en mesure de le chauffer via cette adresse. Maintenant, il ne vous reste plus qu'à investir un peu d'argent et passez à l'assistant pour créer une instance de conteneur. Si vous le regardez, remplissez les informations de base, nous savons déjà tout cela. Nous avons plusieurs options biaisées, mais la disponibilité dépend de notre région. Vous pouvez donc en savoir plus à ce sujet pour votre propre raison. Si vous ne voyez pas ce que vous voulez. Nous pouvons choisir la source de notre image. Nous pouvons avoir les images de démarrage rapide où nous pouvons simplement choisir l'un de ces exemples. Ou nous pouvons choisir dans notre registre, ce que nous avons essentiellement fait. Nous pourrions donc simplement rechercher le registre approprié, puis l'image appropriée, puis la version appropriée que nous souhaitons. Nous pouvons modifier la taille du contenant. Ensuite, nous pouvons examiner d'autres registres, qu' il s'agisse de registres publics ou privés et fournir les informations d'identification en conséquence. Maintenant, bien sûr, il est probablement préférable de tout avoir dans Azure et de ne pas avoir certaines choses sur Docker Hub et d'autres sur zéro. Bien entendu, en fonction de vos genoux, votre architecture et de votre organisation, vous voulez prendre les meilleures décisions possibles. Mais comme il s'agit d'un cours réservé aux développeurs, nous allons tout orienter vers maintien de tout ce que Microsoft fait en Europe. Maintenant, pour la partie réseau, nous pouvons choisir une adresse IP publique, privée ou sans adresse IP. Nous pouvons également choisir cette étiquette de domaine, ce niveau DNS. Ça va ? L'étiquette DNS de l'adresse IP publique fera donc partie d'un nom de domaine complet ou d' un FQDN pouvant être utilisé pour accéder au conteneur. C'était donc la pièce manquante avec l'autre méthode que nous avons utilisée pour créer cet ACI ou ce conteneur pour notre image. Si nous passons au niveau avancé, nous constatons que nous avons ici une certaine quantité d'oxygène d'orchestration. Nous pouvons donc définir notre politique de redémarrage disant qu'en cas de panne ou si quelque chose se produit, dois-je redémarrer le conteneur ? Je peux dire que si quelque chose arrive, redémarrages signifient toujours qu'il y aura un redémarrage périodique. Cela ne veut jamais dire qu'il fonctionnera tant que je ne l'arrêterai pas. Et puis, bien sûr, après avoir mis tout cela, nous pouvons continuer et créer des notes. Vous pouvez également spécifier vos variables d'environnement pour ce conteneur particulier que vous faites tourner. C'est donc l'ensemble des instances de conteneur qui fonctionnent dans nos instances de conteneur Azure. Maintenant, bien sûr, il y avait une option qui nous aurait permis de le déployer dans une application Web. Donc, à notre retour, nous envisagerons un service d'applications Web sans conteneurs. 10. Publier des exemples de conteneur Azure: Dans cette leçon, nous allons explorer les nuances de la création d' un service conteneurisé en tant que Web App Service. Nous n' allons pas vraiment le créer. Nous allons simplement examiner certains des différents paramètres dont nous devons être conscients. Ainsi, lorsque je clique sur Créer, nous passons aux bases. Bien entendu, nous savons que nous complétons les informations de base avec notre groupe de ressources. Je vais donner ce nom précis. Je vais juste dire microservice Dash Two Dash. Quelque chose d'unique que personne d'autre sur Internet ne possède, j'en suis sûr. Et ensuite, comment allons-nous publier ? Donc, jusqu'à présent, nous avons examiné le code. Et si j'accède au conteneur Docker ? Donc, si je clique sur le conteneur Docker et que je remarque qu'il me demandera quel système d'exploitation nous avons utilisé jusqu'à présent dans les notes, donc pas besoin de le modifier. Je vais utiliser la meilleure région en fonction de mes besoins. Ensuite, je vais spécifier une nouvelle usine de service. Notez donc que je ne peux pas utiliser le plan Code Service car le modèle d'hébergement est différent lorsqu'il fait froid Nous pouvons alors réutiliser le plan de service existant que nous avions précédemment dans ce cours. Cependant, comme je choisis un conteneur Docker, je dois en créer un nouveau et je ne suis pas du genre à opter pour le prix supérieur. Je peux toujours obtenir le prix gratuit, donc je vais simplement choisir celui-ci. Et puis, si nous passons à la baignoire la plus foncée, nous avons plusieurs options. Je peux choisir un seul conteneur plutôt qu'un Docker Compose. Et remarquez que c'est toujours en avant-première. Donc, si je choisis un seul conteneur qui me permet de spécifier la source de l'image, dois-je l'utiliser à partir de Docker Hub, un autre registre privé Donc, bande entière plus sombre, ECR ou zéro Container Registry. Ce ne sont pas les deux seuls registres. Et parfois, vous pouvez finir par provisionner votre propre registre dans votre propre environnement, n'est-ce pas ? Ce sont donc toutes des options. Mais si je choisis mon registre de conteneurs Azure, je peux ensuite sélectionner le registre, sélectionner l'image et sa balise. Je peux définir une commande de démarrage si je le souhaite. Passez à la mise en réseau. Je pense que presque tout le reste reste pareil. Tout ce à quoi vous êtes déjà habitué familier en matière d'applications Web Azure. L'utilisation de la charge de travail la plus sombre pour Azure Web App Service serait très similaire dans la mesure où non, nous utilisons des conteneurs Docker. Et bien entendu, lorsqu' il s'agit de mettre à jour les balises développer et de déployer en continu, toutes ces options sont à notre disposition une fois que nous les avons mises en place. Toutefois, pour des raisons de temps et d'argent, je ne vais pas poursuivre. Bien sûr, vous pouvez continuer et passer à un niveau gratuit. Mais n'oubliez pas que le registre de conteneurs et les instances de conteneurs sont payants. Vous pouvez donc expérimenter et obtenir toutes les informations dont vous avez besoin en conséquence. Je vais toutefois m'arrêter là. Donc, à notre retour, nous allons jeter un bref coup d'œil à Kubernetes 0, juste une théorie. Encore une fois, il ne s'agit pas d'un cours approfondi sur Docker et l'orchestration. Il y a beaucoup à apprendre. Je voulais juste vous donner une idée de la façon dont les conteneurs fonctionnent. Nous pouvons placer nos images sur Azure et créer des instances d'applications en fonction de ces images. Ainsi, à notre retour, nous examinerons certaines théories concernant Kubernetes 0 et comprendrons comment cela fonctionne dans le contexte actuel. 11. Vue d'ensemble du service Azure Kubernetes: Très bien, les gars, donc dans cette leçon nous allons simplement passer en revue certaines des bases de Kubernetes, ce n'est qu'une théorie. Nous n'allons pas entrer dans Kubernetes, c' est un tout autre jeu de balle. Nous n'allons donc pas entrer dans les détails ni le discours, mais je veux que vous compreniez pourquoi vous entendez généralement parler de Kubernetes chaque fois que vous entendez parler de dark et de conteneurisation. Kubernetes propose un mécanisme de planification et d' orchestration fiable mécanisme de planification et d' orchestration pour les charges de travail des applications tolérantes aux pannes. C'est un tas de mots importants pour dire que cela nous permet de gérer le provisionnement de conteneurs entiers, le provisionnement redémarrant en fonction de différents indicateurs. Nous pouvons donc réellement utiliser Kubernetes pour définir différentes règles pour gérer ou orchestrer nos conteneurs. Encore une fois, pour les applications cloud natives ou basées sur des microservices, cela est très important car plusieurs éléments mobiles doivent être sains probablement évolutifs individuellement. En utilisant Kubernetes, nous pouvons donc orchestrer tout cela. Nous pouvons dire à l'un des services que nous avons besoin de trois conteneurs par jour. Un autre en a besoin, un autre n'a jamais besoin d'évoluer. Tout cela est possible avec Kubernetes. Pour ce faire, nous utilisons une approche déclarative, qui nous permet d'utiliser cette approche déclarative pour gérer les déploiements. Et il est soutenu par un ensemble robuste d'API pour répondre à nos besoins de gestion. Il permet de gérer les conteneurs pour les organiser, les ajouter, les supprimer ou les mettre à jour jusqu'à plusieurs conteneurs à la fois. Désormais, lorsque nous utilisons Kubernetes, nous pouvons tâches utiles telles que l'autoréparation, la mise à l'échelle, la gestion du réseau, le stockage, mises à jour des conteneurs et la gestion des secrets. La raison pour laquelle cette liste est importante est que nous avons constaté que certains de ces défis étaient surmontés lorsque nous examinions la conteneurisation. Très bien. Nous avons constaté qu'il fallait faire très attention à l' adresse IP ou plutôt numéro de port attribué à chaque conteneur. Nous avons dû examiner dans quelle mesure nous n'avions pas réussi à le faire dans le cadre de ces exercices basés sur l'architecture des microservices. Parfois, les services ont besoin de communiquer entre eux Nous devons donc absolument savoir comment ils vont se mettre en réseau. Comment allons-nous gérer le stockage ou allons-nous mettre à jour le conteneur lorsque cette image de conteneur sera mise à jour ? Comment redémarrer le conteneur pour gérer cette nouvelle version de l'image ? Donc, si quelque chose se passe, si quelque chose se produit, si nous devions redémarrer, nous avons constaté que nous pouvions y parvenir en utilisant les instances de conteneur en ligne. Et bien sûr, si nous nous asseyons et que nous payons nous-mêmes, nous y arriverons probablement. Mais pourquoi nous disons-nous que lorsque nous pouvons utiliser Kubernetes, c'est automatisé ? Maintenant, il s'agit à nouveau d'un commentaire tiré de la documentation Microsoft. Il s'agit d'un bref aperçu de la façon dont notre Kubernetes est ce que nous appellerons un cluster. Vous pouvez également voir les experts sur les principaux clusters informatiques à quoi ressemble. À partir de là, nous avons le plan de contrôle. C'est là que se situerait toute notre logique d'orchestration. Et puis nous avons des cubelets ou des instances clés. Et chacun d'entre eux possède un contenant. Il est considéré comme un nœud. Et il dispose d'un délai d'exécution pour que le conteneur et le proxy communiquent avec le plan de contrôle. Ensuite, autant de conteneurs que possible, Kubernetes les orchestrera et les gérera à nouveau. Maintenant, bien sûr, si nous avons Kubernetes, nous aurons un service Azure Kubernetes ou AKS en abrégé. Cela nous offre donc un moyen rapide de développer et déployer des applications conteneurisées en un rien de temps. Nous avons donc vu à quel point c'était rapide et facile avec l'ACR et l'ACI. Eh bien, c'est encore plus facile et plus robuste si nous ajoutons AKS au mélange. Et cela nous donne toute la puissance de l' orchestration Kubernetes, soutenue par Microsoft en tant qu' infrastructure. Il s'agit d'un service payant à l'utilisation. Encore une fois, l'évolutivité et tous ces éléments sont intégrés à Twine. Ce service est entièrement géré Nous n'avons donc pas à nous soucier des logiciels et du matériel sous-jacents. , il offre davantage de fonctionnalités d' orchestration et de gestion que ne le font les ECI ou Container Instances. Imaginons cela comme un service de gestion ou extension de service de gestion pour notre service ACI. Une fois de plus, tous ces services peuvent être combinés pour nous aider à fournir une application conteneurisée soutenue par une orchestration et une évolutivité appropriées. Maintenant que nous avons une idée de Kubernetes , c'est au moins d' un point de vue théorique. Revenons à zéro, nettoyons nos ressources et voyons comment nous pouvons libérer l'espace et économiser de l'argent. 12. Nettoyage des ressources: Alors que nous approchons de la fin de cette section, nous voulons nous assurer de nettoyer nos ressources et de ne pas dépenser plus d'argent que nécessaire pour notre abonnement Azure. Même si vous n'avez pas été en mesure de suivre certains plants de pois, vous comprenez au moins les concepts et nous verrons simplement comment éliminer les ressources. Le moyen le plus simple de supprimer nos ressources est donc d'accéder à la ressource, bien sûr, et de cliquer sur Supprimer. Désormais, si vous avez d'autres ressources dans le même groupe de ressources, vous pouvez toujours simplement supprimer le groupe de ressources , ce qui détruirait toutes les ressources en conséquence. Maintenant, j'ai des éléments importants dans ce groupe de ressources, donc je ne suis pas disposé à emprunter cette voie. Au lieu de cela, je vais supprimer les ressources individuellement. Donc, pour supprimer notre registre de conteneurs, je vais simplement appuyer sur Supprimer. Êtes-vous sûr de vouloir supprimer ? D'accord, puis cela déclenchera cette opération de suppression. De même, je vais passer à l'instance de conteneur pour l'outil de tiret de microservice. Et je vais également le supprimer. Je vais également revenir sur une opération précédente au cours de laquelle nous avons supprimé les images. Les images prennent de la place. Vous pouvez voir si vous tapez dans la commande docker images, toutes les images que vous avez sur votre ordinateur et leurs tailles respectives par image. Donc, si vous n'avez pas besoin de l'image, vous pouvez simplement la supprimer. Ça va ? Vous voyez donc ici que l'image SQL Server est de 1,33 Go. Et puis quelques images des applications sur lesquelles nous travaillions. Tous ont une probabilité totale combinée supérieure à un gigaoctet. Ainsi, pour supprimer une image, vous pouvez simplement double-cliquer sur cet identifiant d'image et le copier. Ensuite, dans la commande, vous tapez RMI plus foncé, abréviation de Supprimer l'image, saisissez cet identifiant , appuyez sur Entrée, puis vous allez le supprimer. Vous pourriez donc avoir une terre une fois. Voyons quelle est cette réponse. Une réponse de D11 entre en conflit avec la possibilité de la supprimer, elle doit être forcée au fur et à mesure de son utilisation. Donc, si vous devez le forcer, retapons cette commande. Docker est un F fou, puis cela forcera la suppression. Très bien, c'est donc une autre façon nettoyer certaines des ressources que vous auriez probablement évitées au cours de cette section. Concluons donc cette section du cours. 13. Conclusion: Dans cette section, nous avons donc découvert la conteneurisation et le dark. Et nous avons réalisé que Docker est une technologie qui a, une entreprise qui fournit des technologies et qui a établi une norme matière de conteneurisation dans l'ensemble du secteur informatique. Tout en explorant la conteneurisation et le dark, nous avons examiné comment conteneuriser un projet .net Core. Nous avons étudié l'utilisation du fichier Docker. Nous avons envisagé de fournir des ressources de support supplémentaires et même un certain nombre d' histoires orales sur l'utilisation de Docker Compose. Nous avons également examiné comment déployer nos applications sur Azure Container Instances et comment télécharger notre image nos images de conteneur dans un registre. Dans ce cas, nous nous sommes concentrés sur Azure Container Registry. Mais si vous utilisez Docker Desktop, il est très facile de pousser le Docker Hub si vous souhaitez l'utiliser comme registre. Nous avons également fait un bref examen de Kubernetes et de Container Orchestration et de ce que tout cela signifie. Merci donc d'avoir parcouru cette section avec moi. Je vous verrai dans le prochain module.