ASP. NET, Docker und Microsoft Azure Entwicklung | Trevoir Williams | Skillshare
Suchen

Playback-Geschwindigkeit


1.0x


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

ASP. NET, Docker und Microsoft Azure Entwicklung

teacher avatar Trevoir Williams, Jamaican Software Engineer

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

    • 1.

      Einführung

      1:02

    • 2.

      Was sind Container?

      9:41

    • 3.

      Setup Docker

      4:16

    • 4.

      Einen Container erstellen

      11:06

    • 5.

      Setup . NET Core Project

      13:34

    • 6.

      Containerize . NET App

      13:21

    • 7.

      Orchestrierung mit Docker Compose

      6:42

    • 8.

      Azure Container Registry

      7:24

    • 9.

      Azure Container-Instances

      5:36

    • 10.

      In Azure Container-Instances veröffentlichen

      3:34

    • 11.

      Azure Kubernetes-Serviceübersicht

      4:56

    • 12.

      Resource Clean-up

      2:27

    • 13.

      Schlussbemerkung

      1:04

  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Jedes Niveau

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

17

Teilnehmer:innen

--

Projekt

Über diesen Kurs

Dieser Kurs vermittelt den Schülern die Kenntnisse und Fähigkeiten, die sie benötigen, um moderne, skalierbare und cloudbasierte Webanwendungen mit ASP.NET, Docker und Microsoft Azure zu entwickeln.

Der Kurs beginnt mit einer Einführung in ASP.NET, einem beliebten Framework zum Erstellen von Webanwendungen mit C#. Die Schüler lernen, wie man Webanwendungen mit ASP.NET und den zugehörigen Tools wie Visual Studio und erstellt. NET Core.

Als nächstes behandelt der Kurs Docker, eine beliebte Plattform zum Containerisieren von Anwendungen. Die Schüler lernen, wie man Docker-Container für ASP.NET-Anwendungen erstellt und verwaltet und wie man sie in verschiedenen Umgebungen bereitstellt.

Schließlich wird der Kurs Microsoft Azure vorstellen, eine Cloud-Computing-Plattform, die eine Vielzahl von Services für das Erstellen, Bereitstellen und Verwalten von Anwendungen bietet. Die Schüler lernen, wie sie ihre dockerisierten ASP.NET-Anwendungen in Microsoft Azure bereitstellen und wie sie die vielen Services von Azure nutzen können, wie z. B. Azure App Service, Azure SQL Database und Azure Functions.

Während des gesamten Kurses arbeiten die Schüler an praktischen Projekten, die es ihnen ermöglichen, die im Unterricht gelernten Konzepte anzuwenden. Am Ende des Kurses haben die Schüler ein solides Verständnis für die Entwicklung von ASP.NET, Docker und Microsoft Azure und können ihre eigenen Webanwendungen in der Cloud erstellen und bereitstellen.

Triff deine:n Kursleiter:in

Teacher Profile Image

Trevoir Williams

Jamaican Software Engineer

Kursleiter:in

Skills dieses Kurses

Entwicklung Webentwicklung
Level: Intermediate

Kursbewertung

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen auf Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

Transkripte

1. Einführung: Willkommen zurück Leute. In diesem Abschnitt werden wir uns zunächst mit Containern in der Cloud oder Azure-Containern befassen. In diesem Abschnitt werden wir also etwas über Containerisierung lernen und uns mit Darker befassen, was das ist, wie wir sie einrichten und lokal verwenden können. Und dann schauen wir uns an , wie wir unser Dotnet Core-Projekt containerisieren können . Und dann, wie wir mit dem Container Instances-Dienst von Microsoft insgesamt gehostet dem Container Instances-Dienst haben, können wir unser Container-Image mithilfe von Azure Container Registry hosten . Und wir werden Kubernetes überprüfen. Wissen Sie, ob Sie zum ersten Mal die Containerisierung durchführen, machen Sie sich keine Sorgen, dies ist ein Überblick, aber wir werden so weit darauf eingehen, dass Sie sich sicher fühlen sollten , ein Gespräch darüber zu führen. Dies ist natürlich kein vertiefter Kurs zur Containerisierung. Sie können sich meinen vollständigen Kurs dazu ansehen. Aber für diesen Abschnitt werden wir einen Überblick über das gesamte Wochenende haben Verschieben Sie unsere Container von unserer lokalen Umgebung in unsere Cloud-Umgebungen. Also bleib dran. Ich weiß, dass du Spaß haben wirst. 2. Was sind Container?: Bevor wir in unsere Zero-Container springen , sehen wir uns die Container an und was sie sind und warum wir sie verwenden. Laut einem Container handelt es sich um eine Standardeinheit von Software, die Code und all seine Abhängigkeiten verpackt. Die Anwendung läuft schnell, zuverlässig und in jeder Umgebung. Und das paraphrasiere ich, was geschrieben steht, aber das ist die Erklärung und kommt von docker.com. Nein. Warum brauchen wir Container? Und das ist ein Schlagwort. Sie würden davon hören, wenn es um Container und Containerisierung geht und warum wir darauf umsteigen sollten. Lassen Sie uns untersuchen, was die bestehenden Probleme sind und wie Container uns helfen können. Keine bestehenden Probleme bei der Softwareentwicklung. Die Virtualisierung ist mit Kosten verbunden. Wir kamen also gerade von einem Abschnitt, in dem wir uns virtuellen Maschinen in der Cloud und Infrastruktur als Service befassten. Die Realität ist , und ich bin mir sicher, dass jeder Entwickler die Tatsache bezeugen kann, dass, wenn Sie eine Umgebung haben und versuchen, in dieser Umgebung zu entwickeln, Sie virtuelle Maschinen benötigen, oder? Das Unternehmen kauft also möglicherweise keine Maschine pro Software , die Sie haben. Stattdessen werden sie weitermachen und eine virtuelle Maschine bereitstellen. Jede virtuelle Maschine muss über ein Betriebssystem verfügen, was bedeutet, dass für jede virtuelle Maschine mehr Lizenzen und dann jede unterstützende Software erforderlich sind für jede virtuelle Maschine mehr Lizenzen und dann jede , die Sie für Ihre spezielle Anwendung auf Ihrer virtuellen Maschine oder einer Reihe von virtuellen Maschinen benötigen Ihre spezielle Anwendung auf . Dies sind weitere Lizenzkosten. Sie müssen also berücksichtigen, dass Virtualisierung überhaupt kein billiges Unterfangen ist, insbesondere wenn sie intern durchgeführt wird. Wir stehen auch vor der Herausforderung unterschiedlicher Umgebungen, denn wenn wir eine virtuelle Maschine bereitstellen und eine bestimmte Version der Software installieren, Version des Betriebssystems auf dieser bestimmten Maschine oder virtuellen Maschine. Vielmehr ist diese Umgebung auf eine bestimmte Weise eingerichtet, dann ist es sehr schwierig, nicht sehr, aber erheblich schwierig, diese Umgebung für Q0 exakt zu replizieren . Und dann, von Accenture on Prod, stoßen wir als Entwickler eine Situation, in der es in Dove funktioniert und dann gibt es einen kleinen Versionsunterschied zwischen Dev und QA. Es bricht in q0 und selbst wenn wir die Enqueue reparieren, funktioniert es in Prod nicht sofort. Es wird also immer kleine Unterschiede zwischen den verschiedenen Umgebungen geben . Und diese können, wie ich sagen wollte, uns als Entwicklern und sogar der Infrastruktur unnötige Kopfschmerzen bereiten . Ich bin Praktiker und weiß es. Eine andere Sache ist, wie einfach ist es für Sie, Ihr Betriebssystem zu ändern? Denn wenn Sie eine Anwendung für Dotnet Core einrichten, Sie IIS, Sie benötigen bestimmte Hosting-unterstützende Software, die auf unserem Windows Server basiert. Aber wenn Sie dann auf einen Linux-Server umsteigen müssen, müssen Sie überlegen, okay, Sie müssen in Genetics oder Apache oder eine andere Hosting-Software verwenden , andere Version davon, eine andere Version davon. Und das ist es, es ist schwierig, die Lauffläche in Windows auf ein anderes, ein anderes Betriebssystem zu replizieren die Lauffläche in Windows . sind also einige der Probleme, mit denen wir bei der Entwicklung von Software konfrontiert sind, insbesondere Software, die wir auf jeder Plattform ausführen möchten. Keine Vorteile der Verwendung von Containern. Erstens haben wir Portabilität. Deshalb hat Docker einen Industriestandard für Container geschaffen , damit sie überall portabel sind. Und ich werde mehr darüber sprechen was Portfähigkeit wirklich bedeutet. Container sind außerdem leichtgewichtig, sodass sie den Betriebssystem-Kernel der zugrunde liegenden Maschine gemeinsam nutzen . Sie müssen nicht für jede Anwendung ein neues Betriebssystem bereitstellen ein neues Betriebssystem , bei der Online-Virtualisierung, bei der jede virtuelle Maschine sozusagen über eigene, selbst gehostete, vollständig bereitgestellte Maschinen verfügt eigene, selbst gehostete, vollständig . Container basieren auf einem Betriebssystem, bieten dann aber eine virtuelle Umgebung, in der nur die Software installiert werden kann, die für die Umgebung benötigt wird . Und im weiteren Sinne, aufgrund der Fähigkeit von Ports, wir, sobald wir diese Vorlage haben, die wir Container-Image nennen, können wir, sobald wir diese Vorlage haben, die wir Container-Image nennen, sie auf einem Windows-Betriebssystem, Linux oder macOS bereitstellen und jedes Mal die gleichen Ergebnisse erzielen. Es gibt auch die Frage der Sicherheit. Sobald sich eine Anwendung in einem Container befindet, ist sie sicher, da Sie sie jederzeit mitnehmen können. Sie können es wieder verschoben anheben. Und wir können unsere Geheimnisse jederzeit speichern , sodass niemand, wir den Zugriff auf den Inhalt einschränken können, etwas einfacher ist als auf einer virtuellen Maschine. Wir werden uns auch mit Unveränderlichkeit befassen. Ein Bild, das die Vorlage für einen Container ist, ist also immer dasselbe, wenn es erstellt wird. also noch einmal auf die Portabilität aus, denn wenn es ein Container-Image für meine Anwendung gibt ein Container-Image für meine Anwendung und es drei Bibliotheken zur Unterstützung benötigt, es mir immer diese Umgebung. Egal wo es bereitgestellt wird. Ich kann also sicher sein, dass es, wenn es einmal containerisiert ist, immer dasselbe sein wird. Wenn es eine neue Version gibt, müsste ich mit dieser neuen Version ein brandneues Bild erstellen. An diesem Punkt haben Sie ein Bild für Version eins und ein Bild für Version zwei. Version eins wird niemals die Version zwei aktualisieren. Sie möchten also nicht das Risiko eingehen die falsche Version bereitzustellen da klar ist , welche Version Sie bereitstellen werden. Hier ist ein Überblick über das gesamte Docker-Aussehen, das der Microsoft-Dokumentation entnommen ist. der linken Seite sehen Sie also , dass wir die Betriebssysteme haben. Es könnte Linux sein, es könnte Windows sein, es könnte Engine X ist gleich B, Mac OS oder was auch immer es ist, auch immer der zugrunde liegende Kernel ist. Also die Linke. Darüber hinaus bietet uns die Docker Engine einen Server, einen Client und eine RESTful-API. Und all dies funktioniert zusammen, um die erstellten Bilder zu verwalten . Also nochmal, das Bild ist die Vorlage. Und mit dieser Vorlage und dem Docker-Server können wir Container bereitstellen, die Sie ganz rechts sehen . Der Container ist also die eigentliche Instanziierung der Vorlage. Und dann kann diese Vorlage mehrmals wiederholt werden. Wir können also aus verschiedenen Gründen mehrere Container für dieselbe Anwendung verwenden. Also nochmal, das Bild besteht nur aus den Vorlagen. Der Container ist die Instanziierung dieser Vorlage. Jetzt habe ich das Dunklere mehrmals erwähnt. Docker ist also eine Containerisierungsplattform , die für die Entwicklung, den Versand und den Betrieb von Containern verwendet wird . Docker verwendet keinen Hypervisor. Im Gegensatz zu virtuellen Maschinen benötigen Sie also keinen Hypervisor, sodass Sie ihn tatsächlich auf Ihrem Desktop oder Laptop installieren können , wenn Sie Anwendungen entwickeln und testen. Und das Beste ist, dass es alle wichtigen Betriebssysteme unterstützt. Unabhängig davon, welches Betriebssystem Sie verwenden, gibt es Docker-Unterstützung dafür. Und es unterstützt Produktions-Workloads für viele Varianten von Linux- und Windows Server-Versionen. Das Beste ist, dass es von vielen Cloud-Anbietern unterstützt wird , darunter Microsoft Azure. Jetzt siehst du auch, wenn du nach Docker suchst, Docker Hub. Docker Hub ist also ein Software-as-a-Service-Angebot , bei dem es sich um eine Container-Registry handelt. Im Wesentlichen speichert und verteilt eine Container-Registry die Container-Images, die wir mit Docker Hub erstellen. Docker-Hub, tut mir leid, Sie können das Image für Ihre Anwendung tatsächlich hosten und verteilen. Und es unterstützt den öffentlichen Vertrieb für beide. Es unterstützt auch den privaten Vertrieb. also auch innerhalb Ihrer Organisation Geben Sie mir also auch innerhalb Ihrer Organisation interne Anwendungsbilder , die Sie verwalten. Sie können sich auf Docker Hub verlassen, wenn es um Datenschutz geht, aber auch um Hosting. Wenn wir uns nun unsere Zero-Container und Serviceangebote auf dieser Seite ansehen, haben wir Azure Container Instances. Azure Container Instances ermöglicht es uns , Docker-Images auf Abruf auszuführen. Es ermöglicht uns, ein Image aus einer Registrierung wie Docker Hub oder Azure Container Registry abzurufen . Das bringt uns zu Azure Container Registry. Dies ist ein verwalteter Docker-Registrierungsdienst der auf der Docker-Registry basiert, der Open-Source-Docker-Registry, auf die verwiesen werden soll. Und das wird natürlich von Microsoft verwaltet sodass Sie sich keine Gedanken über die Versionen machen müssen. Dies ist nur der aktuelle Standard. Und das bietet uns ein privates Registrierungsangebot, das in Azure gehostet wird. Und es ermöglicht Ihnen, Ihre Images für alle Container und für Deployments zu erstellen , zu speichern und zu verwalten, tut mir leid. Mit Azure Container Instances als Container Registry haben Sie also eine gute Grundlage, um mit der Containerisierung Ihrer Apps und dem Speichern der verschiedenen Versionen von Images zu beginnen Containerisierung Ihrer Apps und . Und noch einmal, all das kann privat gemacht werden. So können Sie Ihre Entwicklungsbemühungen beschleunigen, Ihre Infrastrukturkosten senken und mithilfe der Containerisierung das Maximum aus Ihrer Anwendung bei der Auslieferung herausholen. Wenn wir zurückkommen, schauen wir uns zunächst ein dunkleres Loch an. Wir können es einrichten und wie wir unsere ersten Container erstellen können. Also bleib hier. 3. Setup Docker: Lassen Sie uns nun mit der Einrichtung von Darker auf unserem Computer beginnen Einrichtung von Darker auf unserem Computer und unsere Reise beginnt auf docker.com. Sie können also in Ihrem Browser zu docker.com gehen und von hier aus den entsprechenden Docker-Client für Ihren Computer herunterladen . Ich verwende also einen Windows-Computer, aber dann sehen Sie, dass Sie einen Upgrade-Chip, einen Linux- und einen Intel-Chip für andere Arten von Computern bekommen können Linux- und einen Intel-Chip für andere Arten von Computern , die möglicherweise nicht auf diesen Betriebssystemen basieren. Sie können es also je nachdem, wie Sie es für Ihren speziellen Computer installieren müssen , installieren, wenn Sie die Windows-Version verwenden. Die Installation ist einfach, wenn Sie den Assistenten verwenden. Und sobald es installiert ist, werden Sie aufgefordert, das Windows Linux-Subsystem oder das Windows-Subsystem für Linux, das WSL-Subsystem, zu installieren das Windows Linux-Subsystem oder das Windows-Subsystem für Linux, , das wir zuvor erwähnt hatten. Es steht also in der Microsoft-Dokumentation. Wenn Sie nur Windows, WSL, googeln , wird diese Dokumentation angezeigt und Sie können den Anweisungen folgen. Sie können dies also einfach mit Ihrer Teil - oder Befehlszeile als Administrator ausführen . Und es wird weitermachen und das für Sie herunterladen und installieren. Sobald Sie Docker und das Windows-Subsystem für Linux installiert haben, können Sie Ihren Docker-Desktop starten. Das kann also eine Weile dauern. Ich habe es bereits installiert. Sie können sehen, ob ich noch aussteht oder nicht , aber Sie können auf Pause klicken und sicherstellen, dass Sie alles eingerichtet haben, bevor Sie fortfahren. Und wenn Sie das tun, können Sie Ihren Docker Desktop starten. Von hier. Sie können sich die Behälter ansehen. Wenn Sie Docker zum ersten Mal ausführen, werden Sie in dieser Liste keine Container haben . Sie können sich auch Bilder ansehen. Von hier aus können Sie sich also tatsächlich lokale Bilder im Vergleich zu Bildern ansehen , die auf dem Hub verfügbar sind. Deshalb haben wir Docker Hub in der vorherigen Lektion erwähnt. Was Sie also tun möchten, ist in Ihrem Browser zu hub.docker.com gehen und ein Symbol zu erstellen. Ich sage, dass ich nein sagen werde, nur um Ihnen zu zeigen, was Sie erwarten können. Und dann können Sie heute kostenlos loslegen. Und sobald Sie Ihre Cones haben, können Sie auf die verschiedenen Docker-Images zugreifen , die für den öffentlichen Gebrauch zur Verfügung gestellt werden. Nein. Ich sage, ich schicke es zurück, ich sehe mir mein eigenes Register an, in dem ich ein von mir erstelltes Patientendatenbankbild habe. Es ist der Öffentlichkeit zugänglich. Es ist nicht sehr nützlich. Ich habe dieses Buch für mein Buch über die Entwicklung von Microservices erstellt , in dem ich gezeigt habe, wie Sie in dem ich gezeigt habe, wie Sie verschiedene Teile Ihrer Microservices-Anwendung containerisieren können, sodass Sie sich ein Exemplar dieses Buches schnappen können , wenn Sie es aus der Sicht von Microservices möchten . Aber der Punkt ist, dass ich mir von Docker Hub aus verschiedene Register ansehen kann. Das sind also meine Repositorys, aber wenn ich auf Explore klicke, kann ich mir verschiedene Bilder ansehen und du wirst sehen, dass mehrere tausend Bilder zur Verwendung zur Verfügung stehen. Also kann ich jedes davon benutzen. Vielleicht benötigen Sie eine Redis-Instanz, Sie benötigen eine Postgres-SQL-Instanz. Und beliebte, sehr beliebte Anwendungen wurden containerisiert und stehen Ihnen als Container-Images zur Verfügung , damit Sie Images instanziieren können. Die Kosten sind Container auf Ihrer eigenen Maschine. es nun zurück zu Docker Desktop bringen Wenn Sie es nun zurück zu Docker Desktop bringen und sich im Hub anmelden, wissen Sie, dass Sie einen Arkon erstellt haben. Von hier aus erhalten Sie dann nach Bedarf Zugriff auf Ihr eigenes Repository. Also hier hätte ich meinen Container verpackt und auf dem Hub veröffentlicht , wobei ich Docker Desktop als Tool verwendet habe. Okay, das tue ich nicht noch einmal, ich kann mir all die lokalen Bilder ansehen , die ich genommen hätte. Und sobald ich einen Container erstellt habe, habe ich danach Zugriff darauf. Sie können also hier sehen, dass ich einen RabbitMQ-Container habe, ich habe einen Mongo-DB-Container zwei Containern für Microsoft SQL Server und ich habe einen für 3D-Skizze. Wenn wir also zurückkommen, schauen wir uns das ganze Wochenende weltweit an. Es bringt ein Bild ein und erstellt unseren eigenen Container. 4. Einen Container erstellen: Derzeit ist Microsoft SQL Server fast ausschließlich auf Windows-Computern nutzbar. Wenn Sie jetzt Mac oder Linux verwenden, sich keine Sorgen, es gibt immer noch eine Lösung für Sie. Lösung Nummer eins wäre , dass Sie eine virtuelle Maschine verwenden können, sodass Sie VMware oder ein anderes Tool verwenden können , das Virtualisierung unterstützt. Und Sie können eine virtuelle Maschine einem Windows-Betriebssystem starten und diese dann verwenden. Wisse, dass das ressourcenintensiv sein kann. Und ich werde Sie nicht all das durchmachen lassen, nur um die Software zu benutzen. Die Alternative zu einer virtualisierten Umgebung für Windows wäre die Verwendung von doc. Ich möchte Sie ermutigen, Ihr Terminal zu starten. Ich verwende also noch einmal einen Windows-Computer, aber Ihr Terminal unter Linux oder Mac OSX würde diesem sehr ähnlich aussehen. Und Sie können einfach den Befehl docker ausführen , um sicherzustellen, dass er installiert ist. Und wenn Sie etwas sehen, das so aussieht, wussten sie nicht, dass Sie Zugriff auf die Docker-CLI-Befehle haben . Ordnung, was wir an dieser Stelle tun wollen, ist einen Befehl namens Docker Pull auszuführen , der ein wenig hineinzoomt , damit er einfacher zu lesen ist. Also machen wir Docker, Pull, Docker, Pull. Dann ziehen wir das heraus, was wir Bild nennen werden. Docker hat also vordefinierte Dateien, die die Umgebung auskleiden, die für eine bestimmte Anwendung benötigt wird. Und diese werden Bilder genannt. Das Bild, das wir wollen, ist das Microsoft MS SQL Server-Image. Also machen wir einen Docker, ziehen an dem Bild, sodass Sie auf Pause klicken können, stellen Sie sicher, dass Sie es so eingeben, wie ich es habe. Und wenn Sie die Eingabetaste drücken, wird es weitermachen und sagen: Okay, ich nehme Liter und dann werden Sie sehen, wie es heruntergeladen wird. Ich habe das Bild also bereits abgerufen, also habe ich es bereits auf meinem Computer. Aber du wirst sehen, dass es zieht. Und dann wird es anfangen, deine Metriken für das fertige Laden anzuzeigen . Und sie würden tatsächlich eher so aussehen. Das ist also ein Screenshot, den ich zuvor gemacht habe, als ich ihn heruntergeladen habe. Und du wirst sehen, dass es diese Haufen Linsen hervorbringt, die so ähnlich aussehen. Und du wirst diese Download-Tags haben. Sobald dies abgeschlossen ist, der nächste Schritt darin, es tatsächlich auszuführen. Um es auszuführen, benötigen Sie diesen Befehl. Also sagen wir Docker run und dann den Bindestrich e, und dann machen wir die EULA accept. Was also passiert, ist, dass SQL Server normalerweise eines dieser Dokumente enthält , die Sie benötigen, um die Allgemeinen Geschäftsbedingungen zu akzeptieren. Also geben wir es einfach in einen Parameter ein, dass ja, wir akzeptieren die Allgemeinen Geschäftsbedingungen. Und dann noch einer , auf dem ein Passwort steht. Wenn Sie sich also den Installationsprozess angesehen haben, als wir Windows verwenden, können wir die Windows-Authentifizierung verwenden um eine Verbindung zur Datenbank herzustellen, oder? Wir benötigen also nur einen Computernamen und können einen Windows-Benutzer, den aktuellen Windows-Benutzer, die Windows-Authentifizierung verwenden den aktuellen Windows-Benutzer, die Windows-Authentifizierung und die Verbindung trennen. Nun, weil es dunkler ist und es ein Container ist, gibt es keine Fenster oder Türen oder Mark oder es gibt keine Linux-Authentifizierung. Es ist also nicht wirklich so, dass Sie einfach mit dem Standardbenutzer auf Ihrem Computer eine Verbindung herstellen können. Dieser Schritt gilt also unabhängig davon, ob Sie Windows, Mac, Linux usw. verwenden. Wir müssen also ein SA-Passwort angeben. ESI ist also der Standardbenutzer, was Systemadministrator-Assistent-Administrator bedeutet. Jedes Mal, wenn Sie eine Datenbank-Engine für Microsoft SQL Server installieren , erhalten Sie diesen Essay-Benutzer. Also werden wir dieses SA, Passwort einrichten und Sie können ein beliebiges Passwort eingeben. Ich gebe hier nur ein sicheres Passwort ein. Und das ist wirklich möglich , was Sie vielleicht in anderen Demos sehen , die Sie sich irgendwo im Internet ansehen könnten . Dieses Passwort ist also nicht unbedingt für mich oder für diese Übung einzigartig. Sie können jeden Passwortwert eingeben, mit dem Sie sich wohl fühlen und an den Sie sich erinnern können. Also teile ich das Wort starkes Passwort natürlich nur starkes Passwort natürlich mit Sonderzeichen, Zahlen und ein paar Großbuchstaben auf. Dann geben wir den Port an. Der Port hier vorne ist wichtig, den wir durchqueren wollen. Der Hafen. Am anderen Ende des Doppelpunkts befindet sich der Port, dem es zugeordnet werden soll. Das bedeutet also, dass SQL Server standardmäßig von Port 1433 sendet, das ist der Standardport. Also ohne etwas zu tun, irgendwelche Ports oder irgendwas anzugeben, werden immer 1433 Anfragen durchgehen , die sich verbinden. Docker läuft jedoch in seinen eigenen speziellen Umgebungen, sodass wir wischen müssen. Das ist der Standardport, und dann ist das der Port von War Machine , den man durchtunneln will, um zu diesem Sport zu gelangen. Sie könnten das also einfach als 14334233 belassen. Wenn Sie SQL Server nicht bereits installiert haben möchten und Mac und Linux ausführen, dann ist 143, 33 ist in Ordnung. Sie müssen nichts extra tun. Sie können einfach eine Verbindung herstellen. Da ich jedoch einen Windows-Computer verwende, musste ich meinen Port ändern, da 1433 bereits von meiner nativen SQL Server-Installation belegt ist . Also ich zeige dir nur, dass du standardmäßig 14331433 machen kannst . Oder Sie können Ihren eigenen spezifischen Port angeben, wenn Sie dies wünschen. Dann der nächste. Als letztes sehen wir Bindestrich D und geben dann das Bild an , das wir ausführen möchten. Im Grunde sagen wir also, dass Docker dieses Image ausführt und sicherstellt, dass all diese Parameter dazwischen konfiguriert sind. Das ist im Wesentlichen das , was wir gerade gemacht haben. Wenn Sie also die Eingabetaste drücken und dieses zum Ausführen hochladen, wird dieses Bild in der dunkleren Benutzeroberfläche gestartet . Und in der Benutzeroberfläche wirst du sehen, dass, du weißt schon, unter der Wanne des Containers ein Container steht. Und du hättest dem Container einen Namen geben können. Wir haben im Befehl keinen Namen angegeben, aber Sie hätten den Bindestrich n eingeben und ihm einen bestimmten Namen geben können. Wenn Sie also keinen Namen angeben, erhalten Sie einen zufälligen Namen, wie den, den Sie hier mit diesen Namen sehen, zumindest Docker, ich gebe an, welche Art von Bild wir verwenden. Und Sie werden hier die Portspezifikationen sehen , die wir konfiguriert haben. Also wie gesagt, Sie können alternative Ports verwenden, und das wäre gut, wenn Sie mehrere Container mit derselben Technologie haben , die den Betrieb von UP-Gelenkports blockieren. Aber wenn Sie die Technologie nicht wie bei meiner MongoDB installiert haben, läuft MongoDB nicht auf meinem Computer, also werde ich keinen alternativen Port verwenden. Ich sage nur, benutze den Standardport, ordne ihn dem Standardport zu und verhalte dich wie die eigentliche Software. Für SQL Server. Ich habe mehrere Instanzen am Laufen, und ich möchte diese Instanz eines bestimmten Ports , damit ich direkt darauf zugreifen kann , wenn ich eine Verbindung herstellen muss. Schauen wir uns nun die Verbindung an. Um eine Verbindung herzustellen, kann ich also jedes meiner SQL-Server-Verwaltungstools verwenden . Wir haben uns bereits einige dieser Tools angesehen. Nur um mich diese Woche zu treffen, werde ich das Data Studio benutzen und eine Verbindung herstellen. Ich werde weitermachen und eine neue Verbindung herstellen. Und für den Server werde ich den lokalen Hostknoten schreiben. The Darker wird bei lokalen Gastgebern laufen. Und deshalb ist diese Portnummer wichtig. Denn normalerweise wäre der localhost-Befehl 1433 der Weg, um eine Verbindung zu der lokal installierten SQL Server-Instanz herzustellen. Wenn, vor allem, wenn Sie auf der Professional-, Enterprise- oder Developer-Stufe sind, oder? Ein lokaler Host mit dem Port würde mich also mit der standardmäßig installierten Instanz auf meinem Computer verbinden . Da ich jedoch die dunklere Instanz haben möchte, muss ich zum lokalen Host und dem spezifischen Port gehen , den ich ihr während des Container-Setups gegeben habe. Für die Authentifizierung kann ich die von uns eingerichtete Windows-Authentifizierung nicht verwenden . Ich muss die SQL-Authentifizierung verwenden. Und ich sage Essay und dann das Passwort. Ich hab's vergessen. Also hier ist eine schnelle Methode, mit der Sie diese Umgebungswerte aus der Dr. UI abrufen können, wenn Sie sie vergessen haben. Sie können einfach auf den laufenden Container klicken und anhand visueller Hinweise wissen, wann er läuft. Hier läuft es und Sie werden sehen Protokolle im Hintergrund ablaufen. Sie können zu Inspect gehen, Sie können zum Terminal gehen usw. Wenn ich zu Inspect gehe, sehe ich alle Umgebungsvariablen , die konfiguriert wurden. Also haben wir die EULA akzeptiert. Warum? Das ist eine Umgebungsvariable. Hier ist das SA-Passwort. Und sieh dir das an. Ich habe das Passwort über hier zur Verfügung. wenn Sie diese Setups machen und Umgebungsvariablen setzen und Ihr Verstand vergisst, wo alles menschlich können Sie jederzeit einfach zum laufenden Container springen, um die Umgebungsvariablen zu überprüfen und sich anzusehen. Also werde ich wieder hierher springen und bitte das Passwort. Und dann klicke ich auf Verbinden. Jetzt erhalte ich die Fehlermeldung, dass es erfolgreich war, aber es benötigt eine vertrauenswürdige Verbindung. Okay, also ich war nur Serverzertifikat anzeigen und da bin ich. Ich bin jetzt mit der SQL Server-Instanz verbunden , die in meinem Container läuft. Und dies ist ein Container, der tatsächlich in einem anderen Kurs verwendet wird, plattformübergreifenden Entwicklung von asp.net Core Kurs unterrichte ich natürlich in der Warteschleife. Sie können asp.net Core verwenden, um eine Lösung in jeder Umgebung zu entwickeln . Also machen wir es etwas dunkler, Isaiah Sean in diesem Kurs. Und das zeige ich dir nur. Ich teile das nur mit Ihnen, um Sie wissen zu lassen, dass diese Datenbank aus diesem Grund existiert. Sie hätten also offensichtlich keine Datenbanken, wenn Sie diesen Container einfach erstellen würden. Dieser Container funktioniert wie jede andere SQL Server-Instanz. Und solange der Container läuft, können Sie trotzdem mit ihm interagieren. Sie können eine Verbindung damit herstellen, Sie können Apps erstellen, um es zu verwenden. Und rate mal, was ist, wenn ich damit aufhöre? Also kann ich diesen Container an dieser Stelle stoppen, oder? Wenn ich hier etwas anderes versuchen würde, zum Beispiel versuchen würde, in die Datenbank zu gehen, stelle fest, dass mein Data Studio hängen bleibt, weil es die Verbindung mit der Datenbank, mit dem Server verloren hat. Also solange der Container läuft. Deshalb haben wir gesagt, dass Sie bei der Installation einer Software möglicherweise nicht unbedingt möchten, dass sie allgegenwärtig ist und ständig läuft. Du willst aufhören, es beenden und es auf Abruf starten. Hier kann die Containerisierung einen großen Beitrag dazu leisten, dass Sie Ihre Systemressourcen während der Entwicklung so effizient wie möglich nutzen können. Jetzt sollten Sie wissen, dass wir einige Erfahrung mit dem Abrufen eines Images und Einrichten unseres Containers haben. Und das, diese Schritte sind gut dokumentiert, also denke ich mir das nicht aus. Das alles kannst du finden. Sobald Sie das Image, an dem Sie interessiert sind, auf Docker Hub gefunden haben, können Sie darauf klicken und sich alle empfohlenen Möglichkeiten ansehen , wie Sie es für alle Umgebungsvariablen einrichten können , die für die Konfiguration benötigt werden. Aber jetzt, wo wir gesehen haben, wie wir ein Drittanbieter-Image verwenden können , lässt es uns wissen, unsere eigene Dotnet Core-Anwendung einzurichten, ein ganzes Wochenende anzusehen, eine Verbindung zu diesem Image herzustellen und zu sehen wie wir eine Anwendung containerisieren können. 5. Setup . NET Core Project: Lassen Sie uns nun unser eigenes asp.net Core-Projekt erstellen. Und in Zukunft werden wir es containerisieren. Also verwenden wir natürlich unsere reguläre Lösung. Ich werde ein neues Projekt hinzufügen. Und dieses Mal werde ich mich für ein API-Projekt entscheiden. Und ich wähle nur eine API die dem Thema entspricht, dass Container und Containerisierung gut zum Architekturdesign von Microservices passen. Also werde ich hier rüberspringen und unser neues API-Projekt erstellen. Ich nenne es einfach Microservice. Eine API verwendet Container, die Demo zeigen. Sie können den Namen also wiederverwenden. Das musst du natürlich nicht. Und dann klicke ich auf Weiter. In diesem Schritt können wir nun unseren Authentifizierungstyp des Frameworks auswählen und uns dafür entscheiden, Darker zu aktivieren. Ich werde hier also nicht dunkler aktivieren, wir werden das manuell hinzufügen oder eine andere Methode verwenden, um es hinzuzufügen. Aber beim zweiten Microservice werden Sie den Unterschied sehen, wenn wir das tun , weil wir es einfach halten wollen. Ich mache nur eine minimale API und wir können auf Erstellen klicken. Wenn Sie nun Visual Studio Code und die Dotnet-CLI verwenden, öffnen Sie natürlich Visual Studio Code und die Dotnet-CLI verwenden, Ihr Terminal und geben den Befehl dotnet new web hyphen 0 für die Ausgabe und geben dem Projekt seinen Namen. Und wenn das erledigt ist, können Sie in den neu erstellten Ordner wechseln und den Code mit vollem Stopp ausführen , um Visual Studio Code in diesem Ordner zu starten . Jetzt haben wir unser Standard-Web-API-Projekt und wir sind alle Entwickler, also wissen wir, was zu tun ist. wissen, dass dieser seltene Tumor wunderschön ist stellen wir eine Verbindung zu unserer Datenbank und all diesen Ressourcen her. Die Sache ist jedoch wieder, wenn wir von unserer Maschine zur Entwicklungsumgebung wechseln müssen und wir sie bereitstellen, kann es Unterschiede zwischen den Umgebungen geben, in denen es auf Ihrem Computer funktioniert und dann funktioniert es auf Def nicht. Und dann haben wir Ausreden wie es gestern funktioniert hat oder wir sagen, nun, es hat auf meiner Maschine funktioniert oder er wird Ihre Maschine in der Produktion benutzen. Das wissen wir alle. Aus diesem Grund macht die Containerisierung unsere Anwendung unabhängig davon , wo sie eingesetzt wird, weitaus portabler und stabiler. Jetzt werde ich diesen Anwendungen Container-Unterstützungen hinzufügen . Ich habe die Anwendung erstellt und lassen Sie uns ernsthaft, wir haben den schönen Code und alles andere abgeschrieben. Aber wir wissen, dass wir es in einem Container benötigen, also bin ich bereit, mit der rechten Maustaste auf das Projekt zu klicken. Und dann gehe ich runter zu Hinzufügen. Und dann wirst du hier sehen, dass Docker unterstützt. Wenn ich also auf Docker klicke, fragt mich der Support, okay, was ist das Ziel oder ob ich es als Linux belassen möchte? Nun, natürlich könnten Sie zwischen den beiden wechseln und Sie sollten sicherstellen, dass Sie die entsprechende Umgebung auswählen, nahezu von den Bibliotheksauswahlen abhängt, da nicht alles unter Linux funktioniert. Aber vorerst ist Dotnet Core für diese einfache App plattformübergreifend. Ich werde Linux benutzen. Ich klicke auf Okay, dann erhalten wir diese neue Datei, die als Docker-Datei bezeichnet wird. Diese Docker-Datei war also anfangs nicht da. Aber lassen Sie uns einfach beurteilen, was diese Docker-Datei macht. Und es sieht verwirrend aus, aber wenn du es durchliest, wirst du sehen, okay, es ist etwas, das verstanden werden kann. Das erste, was es tut, ist ein Basisimage abzurufen. Also ab und dann heißt es den Bildnamen. Denken Sie also daran, als wir unseren Docker-Pull für SQL Server durchgeführt haben, müssen wir einen ähnlichen Pfad angeben wo wir stattdessen SQL Server sagten, wir haben unser Tag nicht angegeben. Wenn Sie also eine bestimmte Version eines Bildes möchten, bedeutet dies, dass dies das Bild ist, aber dann ein Doppelpunkt. Dann bedeutet der Wert nach dem Doppelpunkt das Tag oder die spezifische Version , an der Sie interessiert sind. Also machen wir eine asp.net-Anwendung. Wir möchten also natürlich, dass das Bild ein Dotnet Seven Asp.Net-Image ist. Und dann sehen wir als Basis. Dann wird spezifiziert, okay, sobald Sie diesen Container erstellt haben, wird unser Arbeitsverzeichnis mit den exponierten Ports 84 für drei erstellt . Und dann von diesem SDK-Image aus , in dem wir bauen wollen. Geben Sie also noch einmal das Arbeitsverzeichnis als SRC an und kopieren Sie dann die Dateien aus dem CSP-Verzeichnis, oder? Sie sehen also hier, das sind nur die Pfade. Kopieren Sie also diese CS-Broach-Datei so ziemlich genau aus diesem Pfad und führen Sie dann einen dotnet-Wiederherstellungsbefehl aus. Hier sehen Sie also, dass es nur dieselben Dotnet-CLI-Befehle verwendet, die wir verwenden, und es nur in unserem Namen tut, oder? Es führt also eine Wiederherstellung für diese CSV-Datei durch und es wird alles in dieser Datei kopiert. Dann richtet es das Arbeitsverzeichnis so ein , dass es wieder da ist. Also, wenn ich es Zeile für Zeile durchgehe , macht das natürlich Sinn, oder? Im Wesentlichen werden wir Dotnet Build als Release erneut ausführen . Und die Ausgabe wird sein. Slash-Build. Dies sind Verzeichnisse , die wir nicht erstellen müssen und sie werden nicht auf unserem Computer erstellt. Stattdessen werden sie in dem Container erstellt , der diese Compiler-Kompilierung durchführt. Und dann heißt es ab diesem Schritt, direkt, nachdem dieser Schritt abgeschlossen ist, nimm, was auch immer es heißt, es veröffentlicht. Und sie wollten den Befehl publish ausführen , der dieselbe Art von Veröffentlichung ausführen würde. Nimm, was in diesem veröffentlichten Ordner ist. Und es wird ihm hier eine kleine Blume geben , um zu sagen, dass aufgebraucht Pferd gleich falsch ist. Okay, noch einmal, das ist für uns generiert. Wir müssen diese Datei nicht unbedingt anbieten. Wir können. Es ist gut, es zu verstehen, zu modifizieren, aber im Allgemeinen müssen Sie es nicht. Und nach all dem wird von der Basis aus gesehen, dass das Arbeitsverzeichnis aktiv ist und es wird alles von der Veröffentlichung dieses Verzeichnisses kopieren . Und dann wird der Einstiegspunkt diese DLL sein. Dotnet Core-Apps werden also normalerweise auf der Grundlage dieser DLL ausgeführt. Und das ist es, was die Anwendung startet , die im Container läuft. Nun, woher weiß ich , dass das in einem Container läuft? Lassen Sie mich also zum Startup-Projekt des Microservices übergehen zum Startup-Projekt des , den wir gerade erstellt haben. Und du wirst sehen, dass der Sternknopf bei allen anderen neugierig und dunkler ist . Zum Beispiel, wenn ich zum Blazer zu HTTPS gehe. Und wir haben uns bereits die Raseneinstellungen angesehen und wissen, dass das Startprofil HTTP, HTTPS enthält. Aber wenn du dir das ansiehst, wirst du sehen, dass es hier jetzt einen dunkleren Eintrag gibt. Und der dunklere Eintrag wird diese Start-URL mit der Prahlerei haben. Also wird alles für Sie konfiguriert , sobald Sie die Docker-Datei hinzugefügt haben. Aber im Grunde wird es weitergehen und dunkler erscheinen, oder? Wenn ich also zu diesem neuen Startup-Projekt gehe und sehe, dass es mit dunkler läuft, wird meine Anwendung genau so gestartet, wie ich es erwartet hatte, richtig, also wird sie in einem Browser gestartet. Und ich werde in der Lage sein, es so zu verwenden, wie ich es erwarte. Welche Beweise habe ich dafür , dass es in einem Container läuft und nicht nur von Visual Studio ausgeführt wird. Nun, wenn Sie sich das Visual Studio-Fenster ansehen, wäre das neue Panel erschienen. Das hast du wahrscheinlich noch nie gesehen. Behälter. Und in diesem Panel sehen Sie, dass dieser Container oder die gehostete Anwendung die gehostete hier als Container ausgeführt wird, oder? Nein, Sie können sich auch alle Umgebungsvariablen ansehen . Sie werden also die Versionsentwicklung sehen, all diese Umgebungsvariablen, die wir nicht gesetzt haben, sitzen , aber sie sind alle da. Wir haben auch Häfen. Wenn Sie sich den Port hier ansehen, werden Sie feststellen, dass er Ports erstellt. Denken Sie daran, dass wir einen Port für den Tunnel erstellen mussten. Also 21433, als wir unser SQL Server-Image gemacht haben. Sie werden hier also sehen, dass wir einen Port haben, der Port 80 und Port 443 zugeordnet ist . Entweder, ich kann klicken und BHs tragen. Wenn wir uns also die Adresse in unserer Swagger-Benutzeroberfläche ansehen, werden wir feststellen, dass wir uns auf der 769 befinden, die Port 443 zugeordnet ist. Wenn Sie eine dunklere Benutzeroberfläche geöffnet und ausgeführt haben, werden Sie auch feststellen , dass Sie einen neuen Container haben dem der Name der Anwendung ebenfalls ausgeführt wird. Und es zeigt dir den Hafen. Und Sie können klicken , um alle Ports anzuzeigen. Das sind also alles visuelle Hinweise und Beweise dafür , dass wir keine containerisierte Anwendung haben. Und das ist ein Microservice. Und noch einmal, es ist nicht auf Microservices beschränkt, sondern wird für Microservices empfohlen , da es jedem Microservice ermöglicht , in seiner eigenen Umgebung zu leben , unabhängig von allen anderen Diensten mit seinen eigenen Abhängigkeiten und allem, was er für einen effektiven Betrieb benötigt . Und wieder ist es portabel. Wenn Sie Visual Studio Code verwenden und die Anwendung, die Sie hier haben, containerisieren möchten müssen Sie die Erweiterungen für Darker abrufen. Wenn du also einfach zu Erweiterungen gehst und einfach nach Docker suchen kannst, lass es installieren. Ich habe versucht zu scrollen und es zu finden, aber Sie können einfach nach Darker suchen und die Docker-Erweiterung installieren. Stellen Sie sicher, dass Sie das von Microsoft erwerben. Und wenn Sie das haben, erhalten Sie diesen Tab, auf dem Sie alle Container sehen können und er bietet Ihnen ein ähnliches, nun, ich möchte nicht sagen, ähnlich, aber es gibt Ihnen genügend Informationen im Vergleich zu dem, was Sie in Visual Studio über die laufenden Container erlebt hätten , sowie verschiedene Images, die Ihnen zur Verfügung stehen, wenn Sie lässt uns auf mehreren Bildern diese spezielle App containerisieren. Das haben wir in unserem Visual Studio-Code bereitgestellt. in Visual Studio Code Halten Sie in Visual Studio Code die Strg-Umschalttaste und P gedrückt, und Sie werden sehen, wie Traitor alle Befehle anzeigt. Also Strg Shift N P und das wird unsere Befehlspalette starten. Und dann werden Sie hier sehen, dass E die Möglichkeit hat, eine Docker-Datei hinzuzufügen. Wenn Sie diese Option nicht sehen, können Sie einfach Docker eingeben und sie wird trotzdem angezeigt. Erinnern Sie sich also an das Hinzufügen. Bei Docker Support geht es wirklich nur darum, eine Docker-Datei hinzuzufügen. Also, wenn wir das auswählen und dann kann ich die Art der Anwendung angeben , die ich unterstützen möchte. Es ist also eine asp.net Core-Anwendung. Und dann können wir das Betriebssystem noch einmal angeben und die Ports angeben. Ich verlasse den Hafen. Das ist in Ordnung für mich. Ich kann wählen, ob ich eine Docker-Compose-Datei möchte, wir werden uns später Docker-Compose ansehen, jemand, der vorerst nein sagt. Und dann wird es weitermachen und diese Docker-Datei für mich mit einer sehr ähnlichen Syntax generieren mit einer sehr ähnlichen Syntax wie wir sie gerade in Visual Studio gesehen haben. Um diese API nun in Dark von Visual Studio Code aus auszuführen, können wir zum Debug-Tab gehen und dann kann ich aus der Dropdownliste das Darker Dotnet Lunch auswählen . Und dann mach weiter und führe es erneut aus, sieh dir einige Aktivitäten hier unten im Terminal an. Und wenn Sie genau hinschauen, werden Sie feststellen, dass die Lunge dem sehr ähnlich ist, was Sie vielleicht in Visual Studio gesehen hätten , als es lief, aber im Hintergrund werden einige Docker-Befehle ausgeführt. Und dann, nach einiger Zeit, wir unsere Dunkelheit nicht zum Laufen bringen. Und wir sehen Hello World. Es war ein einfacher API-Endpunkt , der einfach HelloWorld zurückgeben würde. Wenn wir in unsere dunklere Benutzeroberfläche schauen, werden Sie sehen, dass der neue Container auch mit dem Namen läuft. Okay, hier läuft der Port 32771 wieder, Sport 5099. Wir hätten also tatsächlich angeben können, dass wir 84 für drei dafür haben wollen. Ich hätte 80 Komma 443 sagen können, als es mich nach den Ports fragte. Das habe ich nicht gemacht, aber ich möchte Sie nur wissen lassen, dass das eine Option war , die zu einem ähnlichen Mapping geführt hätte wie hier. Jetzt wissen Sie also, wie Sie Ihre Dotnet Core-Anwendung sowohl mit Visual Studio als auch mit Visual Studio Code containerisieren Ihre Dotnet Core-Anwendung sowohl mit . Natürlich laufen wir immer noch im Debuggen. Also werde ich das Debuggen beenden. Und das ermöglicht es uns, unsere Apps tatsächlich zu debuggen , während sie sich in einem Container befinden. Wenn wir nun einfach noch einmal die Schritte ausführen, um ein neues hinzuzufügen, lassen Sie mich ein neues Projekt hinzufügen. Es tut uns leid. Als wir das Projekt hinzufügten, hatten wir die Möglichkeit, dunklere Unterstützung hinzuzufügen. Also werde ich hier einfach auf ein zufälliges klicken. Und wir hatten die Möglichkeit , Docker zu aktivieren. All dies hätte uns also ermöglicht, das Betriebssystem hier auszuwählen, und dann hätte es die bereits bereitgestellte Docker-Datei generiert oder projiziert. Sie können es von Anfang an tun, wenn Sie wissen, dass Sie es dunkler verwenden werden, oder Sie können es einfach nachträglich hinzufügen wenn Ihre Ambitionen diesen Punkt erreicht haben. Nein, es ist erledigt. Es ist sieben. Es gibt Dotnet-Befehle , mit denen wir unsere App tatsächlich in einem Container veröffentlichen können unsere App tatsächlich in einem Container veröffentlichen , ohne dass eine Docker-Datei erforderlich ist. Eine Docker-Datei kann für jede Version von Dotnet verwendet werden und ist universell. Sie müssen sich keine Sorgen machen, wenn Sie eine Docker-Datei verwenden. Aber wenn wir zurückkommen, werden wir uns ansehen, wie wir native Dotnet-Befehle verwenden können , um sie zu containerisieren oder zu erhöhen. 6. Containerize . NET App: In dieser Lektion werden wir uns nun ansehen, wie wir ein Dotnet up mithilfe von dotnet publish oder den nativen dotnet-CLI-Befehlen containerisieren können up mithilfe von dotnet publish oder den nativen dotnet-CLI-Befehlen . Nun, das ist einmalig, zumindest zum Zeitpunkt der Aufnahme, um Seven zu dominieren, und ich bin mir sicher, dass es in späteren Versionen verfügbar sein wird. Bisher, Dotnet Six und darunter, benötigen Sie immer noch die Docker-Datei. Wenn wir jedoch mit den sieben fortfahren, können wir das schaffen. Ich werde einfach weitermachen und ein neues Projekt erstellen. Und ich werde nur Visual Studio für diese Demo verwenden, aber Sie können gerne mit Visual Studio Code weitermachen . Das meiste davon wird über die Befehlszeile gesteuert. Aber ich werde weitere Microservice-APIs erstellen. Ich werde diesen Microservice für API-Punkt-Container in der Demo aufrufen . Und lassen Sie uns weitermachen und das erstellen. Ich füge keine Docker-Unterstützung hinzu. Ich ändere nichts am vorherigen Setup. Und jetzt haben wir unser neues Projekt. Also dieses neue Projekt, wir müssen ein neues Paket hinzufügen, oder? Also werden wir den Befehl dotnet CLI verwenden. Ich verwende dotnet CLI, weil jeder es verwenden kann , egal ob Sie in Visual Studio oder Visual Studio Code sind . Also werde ich einfach das Terminal hier in Visual Studio starten. Und ich werde den Befehl dotnet add package ausführen und wir fügen Microsoft.net Dot Build Dot Container hinzu. Also mach weiter und installiere das Paket. Jetzt, wo das Paket installiert ist, können wir es überprüfen, indem wir einfach auf die CS-Projektdatei klicken und Sie werden es hier sehen. Wenn wir nun unserem Container einen Namen geben wollen, gibt es Zeiten, in denen wir möglicherweise ungültige Namen als Projekte haben . Wenn Sie also den Namen ändern möchten, können Sie hier im Bereich Property Group des CSB Raj tatsächlich einen Knoten hinzufügen . Und das wäre Container und würde meine Rechtschreibung richtig machen , Bild Nim. Und dann können Sie ihm mit diesem Knoten tatsächlich einen anderen Namen geben. Also nenne ich es einen Makro-Mikroservice. Strich, um einfach etwas zu schreiben. Es ist Microservice Punkt zu Punkt API Punkt Clinton ist diese Demo. Ich möchte es einstellen, um es einfach Microservice Dash to Write zu nennen , nur um Ihnen zu zeigen , dass wir das eigentliche Bild umbenennen können , bevor es veröffentlicht wird. Jetzt, wo ich bereit bin, mit den Punktnetzen, wieder den gelben, zu veröffentlichen mit den Punktnetzen, wieder den gelben, kann ich dotnet publish sagen , kann ich dotnet publish sagen und werde das Betriebssystem spezifizieren. Also Dash, Dash OS, und ich bleibe einfach bei Linux und Dash, Dash Arc. Und wir geben 64 an, um zu zeigen, dass wir ein 64-Bit wollen. Dann sagen wir Slash t publish container und dann C release. Bei all dem, was wir hier tun, sehen wir, dass wir die Release-Konfiguration wollen , das ist der Strich C. Auch spezifiziert das Dash Art eine 64-Bit-Architektur. Und wir geben an, dass wir ein Betriebssystem wollen, ein Linux-basiertes Betriebssystem. Wisst, wann der Befehl ausgeführt wird, ihr werdet sehen, dass ich ein paar Logs ausgedruckt habe, aber mach weiter, führe ihn aus. Drücken Sie Pause. Wenn es fertig ist, können wir gemeinsam helfen. Aber am wichtigsten ist, dass Sie das sehen, um das Image mit dem angegebenen Containernamen zu erstellen . Wenn wir diesen Container-Namensknoten nicht angegeben hätten, hätten Sie ein Bild erhalten, das dem Projektnamen ähnelt , den wir zuvor gesehen haben. Das sind also nur kleine Kleinigkeiten , die Sie beachten können. Tatsache ist, dass jedes Mal, wenn wir dieses Image ähnlich wie das Ganze konfigurieren müssen, die Docker-Datei alle möglichen Umgebungen einrichten , dh falsch usw. Für den Container können wir hier tatsächlich einen anderen Knoten angeben. Wenn ich also, sagen wir, wir verwenden dotnet 6.7 are, wollte ich nur eine Dotnet Six Runtime. Dieses Bild könnte ich tatsächlich hierher kommen und das Container-Image angeben und dann den Namen des Images eingeben. Also schauen wir mal, ob ich die Runtime für Dotnet Six haben will. Ich konnte MCR, microsoft.com.net Slash Runtime und dann das Tag für 6.0 sehen microsoft.com.net Slash Runtime . Okay, wenn ich etwas anderes wollte, zum Beispiel wenn ich dieses Bild selbst taggen möchte , könnte ich das spezifizieren. Und ich werde diesen einfach entfernen. Es war ein Beispiel, aber ich könnte das Container-Image-Tag angeben. Und dann könnte ich meine eigene Version dieser bestimmten Jagd oder dieses Bildes festlegen , das ich veröffentliche. Nehmen wir an, nach einem Bugfix war das Originalbild 1.2, 0.0. Aber vielleicht habe ich einen Bugfix gemacht. Ich weiß, ich möchte, dass das 1,2, 0,1 ist. Und wenn ich dann den Befehl erneut ausführe, werden wir sehen, dass wir ein brandneues Bild mit dieser Tag-Version erhalten. Da haben wir es. Also führe ich den Befehl einfach erneut aus. Ich weiß, dass ich das neue Bild mit dem Tag 1.0, 0.1 habe. Denken Sie jetzt daran, die CS Bridge-Datei zu speichern , und deshalb habe ich so viele Runs. Es ist mir passiert, als ich es zum ersten Mal nicht gesehen habe. Wann immer Sie hier eine Änderung vornehmen, müssen Sie dies überprüfen, da dies keine Build-Operation ist, sondern eine unveröffentlichte Operation. Wenn Sie also nicht speichern, wird es nicht sehen, dass die Änderung darin besteht , weitermachen und pushen zu können. Es gibt mehrere andere Dinge, die Sie bei der Konfiguration Ihres App-Images von diesem Punkt aus hinzufügen können. Wenn Sie also mehrere Tags haben möchten, können Sie tatsächlich die Image-Tags eines Containers sehen. Beachten Sie, dass sich das S von Toggle unterscheidet. Und Sie können verschiedene Versionsnamen mithilfe alphanumerischer und semantischer Versionierungstechniken angeben . Und Sie sollten nur ein Semikolon verwenden um jedes Versions-Tag zu trennen. Sie können auch eine Elementgruppe hinzufügen , in der Sie weitere Metadaten hinzufügen können. Sie können also die Container-Ports konfigurieren, die dieser Container haben soll, sobald das Image erstellt wurde. Sie können auch eine Container-Umgebungsvariable erstellen. Und das haben wir schon einmal gesehen, insbesondere als wir unseren SQL Server-Container einrichten unseren SQL Server-Container den wir die Lizenzvereinbarung akzeptieren mussten. Also machen wir einfach weiter und erstellen diese Variable. Jedes Mal, wenn der Container das ausgibt, ist dieser Variablenwert verfügbar. Hier wo es im Logger sitzt Ausführlichkeit auf mich zurückführen. Das bedeutet, dass dieser Container so viele Informationen ausspucken soll , wie von unserem Dotnet-Core-Up generiert werden, okay, und wir wissen, dass Core-Ups ein bisschen gesprächig sein können, also sollte er all das an die Container-Konsole ausspucken . Ein weiteres Beispiel für eine Umgebungsvariable, die Sie möglicherweise festlegen möchten, wäre eine für die ASP NET Core-Umgebung. Also hier, wenn wir es lokal ausführen, wird es die Entwicklung als Umgebungsvariable verwenden. Wenn wir jedoch eine Veröffentlichung durchführen und eine Konfigurationsversion durchführen, wird diese Variable die Produktionsvariable sein. Wir könnten diese Standardeinstellung tatsächlich überschreiben und sehen, wenn Sie in diesem Container sind. Ich möchte, dass diese Umgebungsvariable Entwicklung oder QE Slash Staging oder Produktion ist usw. So können Sie sich also die Verwendung von Umgebungsvariablen vorstellen . Sie können auch Labels und Labels hinzufügen, helfen Sie einfach bei den Metadaten und der Auflistung, wenn sie in der Registrierung enthalten sind. Wir können hier auch die Registrierung angeben, aber dafür sind wir noch nicht ganz bereit. Wenn das alles erledigt ist, kann ich einen weiteren Push machen und das Image erstellen oder dieses Bild aktualisieren. Das sind also wieder Bilder, keine Container. Jetzt möchte ich mein Image jetzt tatsächlich ausführen , um sicherzustellen, dass das Image existiert. Ich kann zur dunkleren Benutzeroberfläche springen und zu den Bildern gehen. Und dann wirst du hier sehen, dass du alle Versionen der Bilder hast, die du veröffentlicht hättest, hier sein sollten. Sie sehen hier also, das sind 1,0 Punkte, 0,1, 0,0, 0,1. Und wenn ich eine von beiden auswähle, wird dieser Abschnitt namens Ebenen angezeigt, in dem alle Zeilen enthalten sind , die verschiedenen Schritte, die befolgt werden sollten, um endlich den Container für diese Anwendung zu erstellen. Wenn ich zu Images gehe, wirst du sehen, dass es das DBN-Image verwendet , weil ich gesagt habe, dass ich Linux will und es verwendet mein Image, das ich erstellt habe. Um dies auszuführen, könnten wir tatsächlich auf das Bild und dann auf Ausführen klicken. Eigentlich mache ich das nicht gern, oder? Ich bevorzuge es, die Befehlszeile zu verwenden. Jetzt siehst du neben ihr, wie du die Nabe ziehst und drückst. Das ist also unser lokales Bild, also gibt es nichts, woran wir herankommen könnten. Aber wenn wir eine Umfrage machen, bedeutet das, dass Sie die aktualisierte Version dieses Bildes erhalten, insbesondere wenn es die neueste sein soll. Wie Sie gesehen haben, konnten wir das Bild mit demselben Tag aktualisieren. Wenn es also Updates für diese Version gibt, können wir sie jederzeit abrufen und es wird ein Update durchgeführt. Wir können den Hub auch pushen, was bedeutet, dass wir hier von unserem lokalen Repository zum Docker Hub pushen . Ich hätte dir schon gezeigt, wow, das sieht zumindest aus wenn die IVR den Hub weiter drückt, du kannst deinen eigenen Container im Hub sehen und du kannst ihn bei Bedarf auf jeder anderen Maschine wieder herunterziehen und anfangen zu arbeiten. So einfach ist es also, Ihren Container zu gedenken, wenn Sie ihn erstellt haben. Lassen Sie uns weitermachen und diesen neuen Container ausführen. Ich werde also ein Terminalfenster öffnen und dieses vergrößern. Ich entschuldige mich also, wenn die Verwendung des in Visual Studio Ihre Augen verletzt. Was ich zu wissen hoffe. Also verwende ich ein Terminalfenster. Ich bin bereits zu dem Verzeichnis gegangen, in dem sich unsere API-Demo für Microservice-Tools befindet. Und was ich hier tun werde, ist einen Befehl auszuführen, der Docker run sagt. Wir haben diesen Docker-Run-Befehl also schon einmal gesehen, oder? Ich gebe Dash an, IT, spezifiziere einen Port. Also werde ich dem sagen , dass ich möchte, dass es läuft. Auf Port 80. 80 und das sollte bis Port 84 enden, gelber Verkehr. Ich möchte nichts komplizieren und verwende 443. Und dann gebe ich den Namen des Bildes an. Also Microservice-Bindestrichwerkzeug, und ich kann das Ziel angeben, ob ich will oder nicht. Lassen Sie mich also einfach weitermachen und die Eingabetaste drücken. Mal sehen, was passiert. Sie sehen also, dass Sie ein Bild mit dem neuesten finden können. Es ist also sehr wichtig , dass Sie das neueste Tag für alles festlegen , was standardmäßig abgerufen werden soll. Lassen Sie mich also weitermachen und das Tag angeben, das ist 1,0, 0,1, und versuchen Sie es dann erneut. Und dieses Mal wird es tatsächlich einige Protokolle ausspucken , die wie Asp.net Core-Anwendungsprotokolle aussehen . Was passiert also, wenn ich versuche , die Bewerbung zu erreichen? Also haben wir gesagt, dass die Anwendung auf Port 80, 80 live sein sollte . Also, wenn ich einen Browser aufrufe und zum lokalen Host-Port 80, 80 gehe . Und dann gebe ich Wettervorhersagen ein, was der Endpunkt ist , der an dieser API liegt. Wir sehen, dass wir unsere API zurückbekommen. Und wir werden auch sehen, dass wir eine kleine Nachricht über die HTTPS-Umleitung haben eine kleine Nachricht über , das ist vorerst in Ordnung. Wenn wir in die dunklere Benutzeroberfläche schauen, werden wir feststellen, dass auch ein neuer Container läuft. Und dieser ist, ich weiß nicht , wie dieser Name lautet, aber auch hier hätten wir den Namen im Docker-Lauf angeben können, wenn wir gewollt hätten. Wenn ich darauf klicke, siehst du, dass es hier auch Logs ausspuckt. Sie können sich die Protokolle also von der Konsole aus ansehen, Sie können die Protokolle von hier aus ansehen. Und eigentlich der Grund, warum es auf die Konsole ausspuckt , mit der es gestartet wurde. Lassen Sie mich das einfach beenden und den Run-Befehl wiederholen. Der Grund, warum es die Konsole übernimmt , ist, dass wir den Strich d nicht angegeben haben, was bedeutet, dass wir wollen, dass es hier als Daemon läuft, der im Hintergrund läuft. Es ist, es entlastet die Konsole. Okay, das ist ein weiterer kleiner Leckerbissen, den Sie verwenden können , um die Konsole freizugeben wenn Sie Ihren Docker-Container ausführen möchten, aber nicht möchten, dass er die Konsole übernimmt. Also hier läuft der Docker-Container wieder. Ich musste einfach aus- und wieder einsteigen. Und du wirst sehen, dass es wieder läuft. Und wir können die Konsole von hier aus betrachten , ohne unsere lokale Konsole zu übernehmen. Jetzt sehen Sie, wie Sie Ihre Dotnet Core-Anwendung mithilfe Ihrer Dotnet-CLI-Befehle und bestimmter Konfigurationen containerisieren Ihre Dotnet Core-Anwendung mithilfe Ihrer Dotnet-CLI-Befehle können. Lesen Sie die Dokumentation, in der Sie herumspielen können, und nehmen Sie verschiedene Konfigurationen vor , die zu Ihnen passen. Aber das überlasse ich dir. Wenn wir jetzt zurückkommen, werden wir uns ansehen, wie wir Docker-Compose verwenden können, um die Orchestrierung mehrerer containerisierter Apps zu handhaben . 7. Orchestrierung mit Docker Compose: Wir haben also bereits eine Vorstellung davon was Container-Orchestrierung ist. Container-Orchestrierung bedeutet im Grunde, dass wir mehrere Container haben und in der Lage sein müssen Feiertagsbeginn zu orchestrieren. Warum fangen sie an? Wenn, wenn das eine vom anderen abhängt, welches zuerst startet usw. Es gibt also mehrere Dinge, die wir für unsere Container einrichten müssen , bevor das Wort tatsächlich beginnt. Also, wenn ich beispielsweise eine Microservices-Anwendung habe beispielsweise eine Microservices-Anwendung und all diese Microservices in ihren eigenen Containern existieren. Damit die Anwendung ausgeführt werden kann, müssen jedoch alle diese Apps gleichzeitig ausgeführt werden . Dann möchten wir sicherstellen, dass wir eine sehr wiederholbare Methode haben eine sehr wiederholbare Methode sie alle gleichzeitig laufen zu lassen. Hier kommt Docker Compose ins Spiel. Also werde ich einfach weitermachen und unserer zweiten API dunklere Unterstützungen hinzufügen . Und indem Sie einfach mit der rechten Maustaste klicken und dem Assistenten folgen, wissen Sie natürlich , dass Sie das auch in Visual Studio Code tun können. Aber jetzt haben wir eine Docker-Datei, die in diesen beiden Apps vorhanden ist. Wenn ich jetzt erneut mit der rechten Maustaste klicke, kann ich tatsächlich Container Orchestration-Unterstützungen hinzufügen. Wenn ich also darauf klicke, werde ich gefragt, okay, welchen Orchestrator möchte ich verwenden? Und standardmäßig habe ich Docker Compose dort. Also mache ich einfach weiter und klicke auf OK. Bestätigen Sie, dass ich das Linux-Betriebssystem verwenden möchte . Und das wird ein neues Projekt mit einigen neuen Dateien generieren . Die erste Datei hier ist eine dunklere Ignorierung. Ähnlich wie bei unserer Gitignore-Datei gibt es bestimmte Dinge, die wir nicht unbedingt mit dem Container und allem anderen mitbringen müssen . Es heißt also nur, ignoriere all diese und kompiliere alles andere. Wir haben auch die Raseneinstellungen, die JSON, die uns eine von Docker Compose gestartete sitzende AUC gibt , hier. Jetzt übernimmt es die Oberhand. Wir können einfach Docker-Compose sagen und das einmal hier in Visual Studio ausführen . Damit können wir einfach alles starten , was die Docker-Compose-Datei sagt. Nein oder Docker. Die Docker-Compose-Datei besteht aus zwei Teilen. Wir haben den dunkleren Bindestrich Compose und wir haben den Override. Or Override können wir bestimmte Einstellungen angeben , die wir für jeden Container wünschen. Lassen Sie mich hier also zuerst von der Hauptdatei ausgehen. Hier sehe ich, dass ich werde, dass die Version eingestellt wurde. Ich bin nicht bereit, das zu ändern. Und dann haben wir einen Bereich für Dienstleistungen. Und dann haben wir unter Services unseren ersten Dienst , den Microservice, wir spezifiziert hatten. Wir möchten Orchestrierung und Unterstützung für hinzufügen. Also wird er sagen, nun, wenn ich diesen Container ausbaue, nenne ich das Image, wie auch immer der generierte Name ist, einen Bindestrich diesen Namen. Und dann werde ich mit dem Kontext gut bauen, unabhängig davon, wo sich das Projekt befindet, und die Docker-Datei oder die Setup-Anweisungen , wie dieser Container generiert werden soll, gibt es in der Docker-Datei in unserem Projekt. Also für so viele Anwendungen wie Sie, die Sie haben , müssen Sie bei der Entwicklung gleichzeitig starten. Sie können Orchestrierung und Unterstützung hinzufügen. Ich kann also auch Orchestrierung und Unterstützung zum zweiten Microservice und das dritte n zum n hinzufügen Unterstützung zum zweiten Microservice und . Wenn ich das also noch einmal mache und dieselben Einstellungen angebe, dann werden Sie sehen, dass ich jetzt einen zweiten Microservice hier in dieser Datei habe . Nett und einfach. Wenn ich also zur Docker-Compose-Datei übergehe und sie größer wird, weil wir jetzt über zwei verschiedene Dienste und so viele Dienste wie Sie haben, haben Sie möglicherweise R-naught überschrieben. Aber hier spezifizieren wir, dass die Umgebung Entwicklung sein sollte. Das können wir jederzeit an unsere Bedürfnisse anpassen. Solange wir also in Visual Studio sind, wird diese Umgebungsvariable natürlich auf jeden Fall in der Entwicklung sein wollen. Wir können angeben, dass wir HTTPS- und HTTP-Ports wünschen. Da haben wir es. Dann können wir die Volumina angeben. einem Band in dunklerem Orange ist die Containerisierung also im Grunde eine Ära Lagerung, der Persistenz. Wenn der Container läuft, wollen wir die Daten also nicht verlieren. Als wir den Container gestartet haben, sollte er sich daran erinnern, wo er zuletzt war. Das ist also besonders wichtig für Datenbankcontainer und fertige Sketch-Container usw. Wenn wir also Volumen sagen, sagen wir nur, dass wir die Geheimnisse des Benutzers speichern wollen . Wir wollen auch bestimmte andere Konfigurationen speichern , okay? Was auch immer diese Konfigurationen sind, bitte behalten Sie sie bei, auch wenn ein Container nicht läuft. Jetzt haben wir einen kurzen Überblick darüber unsere Containerisierung oder Docker Compose wirklich aussieht, oder Docker Compose und Override Dateien. Lassen Sie uns weitermachen und sehen, was passiert , wenn wir mit Docker Compose arbeiten. Also drücke ich einfach auf Run. Und in unserem Browser läuft unser erster Micro-Service. Jetzt wurde der erste Micro-Service mit Swagger-Unterstützung erstellt. Wir sehen, wie wir diesen Endpunkt erreichen können. Aber wenn ich zu Visual Studio zurückkehre, werden Sie im Abschnitt mit den Containern feststellen, dass ich den Microservice-On-Container habe, also habe ich einen vorhandenen dafür. Es erstellt also einen brandneuen Container der auf dem Docker Compose basiert. Und es erstellt einen Container für den zweiten Microservice. Und wenn Sie nur einmal darauf klicken , konnten diese beiden Dienste gestartet werden, die möglicherweise voneinander abhängen oder auch nicht. Wenn ich in die dunklere Benutzeroberfläche schaue, werden Sie feststellen, dass ein neuer Docker Compose-Abschnitt erscheint. Und dieser Docker Compose-Abschnitt enthält beide Container für die Microservices. Es hat auch die verschiedenen Anschlüsse für jeden. So kann ich problemlos nach einem der beiden suchen. Und ich kann sie einfach alle mit einem Stopp stoppen. Ich hätte es auch von Visual Studio aus stoppen können, wahrscheinlich hätte ich es auch von Visual Studio aus stoppen sollen. Jetzt, wo wir verstehen wie Docker Compose und Orchestrierung funktionieren. Und es gibt noch eine weitere Ebene, auf wir Kubernetes 0s einführen würden, das viel mehr kann, als nur Container hochzufahren. Aber das schauen wir uns später kurz an. In der nächsten Lektion wechseln wir zu Microsoft Azure und erstellen unseren Container Registry Service. Und dann schauen wir uns an, wie wir unsere Container in diese Registrierung verschieben können . 8. Azure Container Registry: In Ordnung, also lasst uns einfach zurück zu unserem Portal springen unserem Portal und nach dem Container Registry suchen. Das ist also ein Suchcontainer. Und wir wollen Register. Und wir werden unser eigenes Container Registry erstellen. Also werden wir wie immer dieses Formular ausfüllen. Also füge ich es in die übliche Ressourcengruppe ein. Ich habe ihm einen Namen gegeben. Und beachten Sie, dass es sehr strenge Benennungsregeln gibt. Also Bindestriche, ich bin kein Fan oder Sonderzeichen sind nicht erlaubt. Also nenne ich meins nicht ACR. Und wenn ich den für mich besten Standort auswähle, verwende ich den grundlegenden Skew. Das wird also ein bisschen Geld kosten. Seien Sie sich dessen also bewusst. Lassen Sie uns also weitermachen und überprüfen und erstellen. Sobald das erledigt ist, können wir zu unserer Ressource springen. Jetzt haben wir das übliche Dashboard und es zeigt uns, wie viel Speicherplatz wir haben wie viel davon genutzt wird. Wir haben sogar eine öffentliche URL zu unserer Registrierung. Denken Sie also daran, dass es sich zwar um eine öffentliche URL handelt, die privat Wenn Sie also Microsoft als Ihre eigene, integrierte Benutzerverwaltung wird . Wenn Sie also Microsoft als Ihre eigene, integrierte Benutzerverwaltung und was auch immer Sie in Ihrer Organisation verwenden, können Sie Ihrer privaten Registrierung Ihre eigene Sicherheit hinzufügen , um sicherzustellen dass Entwickler Container-Images entsprechend abrufen, pushen und patchen können . Wir haben auch die Repositorys , mit denen wir unsere Tools verbinden können , um sie verwalten, abrufen und pushen zu können. Wenn ich also zu den Zugangsschlüsseln übergehe, kann ich mich als Admin-Benutzer anmelden. Also hier ist ein Registrierungsname, der der Anmeldeserver ist und die Admin-Benutzeranmeldeinformationen verwendet. Jetzt, wo ich Zugriff auf den Benutzernamen und das Passwort auf Admin-Ebene habe, kann ich mein Terminal starten. Und ich werde ein Docker-Login ausführen, gefolgt vom Namen unserer Login-Serveradresse, was in meinem Fall ist, ist es Pferd, ECR-Punkt als Ihre CR? Also mache ich weiter und drücke die Eingabetaste. Dann wird es mich nach dem Benutzernamen fragen. Also werde ich diesen Teil einfach kopieren und einfügen. Und dann das Passwort, das ich natürlich einfach aus dem Portal kopiere und das Terminal benutze und die Eingabetaste drücke. Und dann werde ich hier sehen, Logan hatte Erfolg. Jetzt habe ich nur den Bildschirm gelöscht, damit wir eine neue Tafel haben können . Eine Alternative zur Verwendung des Docker-Logins wäre jedoch die Verwendung des Befehls bash ist ein Login. Sobald du das getan hast, wirst du das aus machen, Null aus. Authentifizierung gegenüber Microsoft als Nullen und Einsen, Sie sind authentifiziert. Sie können dann sehen, ob es sich um eine ACR-Anmeldung handelt und dann den Namen der Registrierung angeben , mit der Sie sich verbinden, was wäre, ist das grob? Und Sie müssen nicht den vollständigen Anmeldeserver einrichten, sagen Sie einfach den Namen der Registrierung und das würde Sie genauso in die Registry einloggen. Das sind also zwei Möglichkeiten , wie Sie sich tatsächlich authentifizieren können . Schauen wir uns nun an, wie wir das Bild verschieben. Also werde ich das Docker-Image für unser Microservice-Tool nur verwenden für unser Microservice-Tool , weil es einen kürzeren Namen hat. Es ist einfacher, diesen Namen einfach zu verwenden. In Ordnung, also Microservice-Dash Two, das werden wir vorantreiben, um der Geschichte einen Schub zu geben. Also beginnen wir mit diesem Befehl-Docker-Tag. Und dann habe ich den Namen und die entsprechende Version angegeben , weil wir nicht über elitär gesprochen haben. Also gebe ich hier nur die Version an. Und ich markiere es mit einem Alias das sich auf die Registrierungsadresse bezieht , unter der es gefunden werden soll. In Ordnung, also was bedeutet das? Das bedeutet, dass ich dieses lokale Image nehme und es an diese Adresse in diesem Repository pushe, und es sollte so heißen. Wenn Sie jetzt kein Tag angeben, wird es automatisch als das neueste gekennzeichnet. Wenn ich also dieselbe Version behalten möchte, kann ich natürlich einfach weitermachen und die Version entsprechend angeben. Nun, ich habe die Version dieses Trichters belassen. Wenn ich also diesen Tag mache, drücke ich die Eingabetaste. Der zweite Schritt wäre, einen Push zu machen. Also wollte ich Docker Push sagen. Und dann werde ich das Container-Image mit Null-Alias übertragen. In Ordnung? Und dann wird das jetzt wieder eine Verbindung zu unserer Registrierung herstellen. Es wird das Standard-Tag latest verwenden und es an diese Adresse senden. Also dieser Registry-Schrägstrich, das nennen wir ein Repository und dieser Name. Wenn das also abgeschlossen ist, wenn ich zurück zum Portal gehe und in den Repositorys nachsehe, werde ich nicht sehen, dass ich das als unser Repository habe. Und wenn ich darauf klicke, sehe ich, dass ich das neueste Tag hier mit diesem Bild verknüpft habe . Ordnung, und dann kann ich von hier aus tatsächlich eine Umfrage machen, wenn ich möchte In Ordnung, und dann kann ich von hier aus tatsächlich eine Umfrage machen, wenn ich möchte, und das nach Belieben aus der Registrierung abrufen. Dies ist eine gute Möglichkeit, Ihre Anwendungen containerisiert und in einer Registrierung zu halten Ihre Anwendungen containerisiert und in , sodass Entwickler vorbeikommen und sie einfach abrufen können , wenn sie bereit sind. Und wenn Sie ein Team haben, das rotiert, und Sie haben komplexe Umgebungseinstellungen. Das ist sehr, sehr wichtig und einfach zu bedienen , denn dann können sie diese Images einfach herunterladen und die Anwendung in ihrer Umgebung mit minimalem Einrichtungsaufwand ausführen . Also, wenn ich das kopiere und dann direkt danach einen Docker-Pull mache , starte ich einfach das Terminal neu und füge That's a darker pool ein und es zieht direkt aus dem Repository mit dem Tag latest und drücke die Eingabetaste. Dann können Sie zur Liste der Bilder in der dunkleren Benutzeroberfläche von Docker Desktop wechseln , und Sie werden sehen, dass dieses Bild hier zur Verwendung verfügbar ist. Ordnung, also kann ich einfach darauf klicken und die Anwendung starten und ausführen oder meinen Docker-Run-Befehl verwenden , den ich lieber verwende, und ihn tatsächlich verwenden. Eine weitere Möglichkeit, alle Images zu sehen , die Sie haben, besteht darin, den Befehl docker images zu verwenden. Und das listet alle derzeit verfügbaren Bilder derzeit verfügbaren sowie ihre IDs auf. Wenn ich also ein Bild entfernen möchte, sagen wir, ich möchte Version 1.0 von meinem Computer entfernen . Ich kann diesen ID-Wert annehmen. Dann sehe ich eine dunklere RMA, die Abkürzung für Remove Image and Paste in That ID, und dann wird sie für mich gelöscht. Ebenso kann ich, wenn ich Docker Desktop verwende, immer einfach zum Bild gehen und die Taste drücken. Sie sehen also, dass Sie zwischen dem UI-Zeug und den Befehlen abwägen können. Aber zumindest wissen wir jetzt, wie wir unser Image in unsere Registrierung auf Microsoft Azure übertragen können. Dann können wir mit dieser Registrierung so viele Pools erstellen, wie wir benötigen. Das ist wieder einmal großartig für die Organisation. Alle vier Behälter für unterschiedliche Anwendungen. Darauf muss unser Entwicklungsteam möglicherweise im Laufe der Zeit zugreifen. 9. Azure Container-Instances: Lassen Sie uns nun zu unserem Portal zurückkehren und zu unserem Container Registry-Service übergehen . Jetzt haben wir das Konzept das Image tatsächlich als Container bereitzustellen. Wir haben es lokal gemacht, lassen Sie uns das in der Cloud machen. Jetzt gibt es mehrere Möglichkeiten. Die einfache Methode, die ich Ihnen in dieser Lektion zeigen werde, besteht darin, die als Ihre Container-Instances zu verwenden. diese Weise können wir Container im laufenden Betrieb auf der Grundlage eines Images bereitstellen der Grundlage , das in der Cloud gehostet wird. Wenn ich also zu den Repositorys gehe und mir unser veröffentlichtes Bild hier ansehe, sehen Sie, dass Sie die Möglichkeit haben, zu dem Tag zu wechseln unser veröffentlichtes Bild hier ansehe, sehen Sie, , der spezifischen Version, die Sie möchten. Und dann können Sie sehen, dass Run-Instances für die Web-App bereitgestellt werden. Also werden wir beides machen. Fangen wir mit Ron Instance an. Hier. Es wird das Erstellungs-Blade für die Container-Instance starten. Also nenne ich diesen Mikroservice einfach Dash Two, weil das der einzige ist, den wir klarstellen. Microservice-Strich zwei, wir belassen alles bei der Standardeinstellung verwenden dieselbe Ressourcengruppe, den entsprechenden Standort. Wir können die Ressourcen angeben, die wir für diesen Container benötigen, und wir können angeben, dass wir eine öffentliche IP-Adresse benötigen. Ich werde ja sagen. Und ich lasse es jetzt an Port 84 senden. Und lass uns einfach weitermachen und auf Erstellen klicken. Und sobald dieser Erstellungsprozess abgeschlossen ist, können wir zur Ressource wechseln. Und von dort aus haben wir unsere Microservice-Anwendung in Container-Instances bereitgestellt. Also hier können wir diesen Container neu starten, stoppen, entfernen. Und wir werden hier sehen, dass ein Container im Container-Instance-Dienst läuft und dass wir eine öffentliche IP-Adresse haben. Jetzt können Sie einen vollständig qualifizierten Namen erhalten, aber Sie würden diesen Wert in der Regel festlegen , wenn Sie entweder das Porto Wizard Setup durch die normalen Schritte gehen entweder das Porto Wizard Setup durch , in denen Sie alles eingeben müssen, die Grundlagen und das Netzwerk, top usw. usw. Oder wenn Sie den Befehl verwenden. Also haben wir vorerst den einfachen Weg gewählt und können zurücktreten und uns ansehen , wie der Zauberer aussieht. Aber im Moment suche ich einfach über diese öffentliche IP-Adresse zur diploiden API. Also, wenn ich einen neuen Tab öffne und diese öffentliche IP-Adresse eingebe und einfach den Wettervorhersage-Endpunkt eintippe . Weil das das einzige ist, was da ist. Und lassen Sie mich meine Rechtschreibung korrigieren und es erneut versuchen. Da haben wir es. Also hier stoßen wir auf die diploide API in diesem Container. Und dieser Container läuft auf unserem Container Instance-Dienst in der Cloud. Wenn wir einen vollständig qualifizierten Domainnamen hinzufügen , können wir ihn natürlich über diese Adresse beheizen. Jetzt nur noch ein bisschen Geld rausholen und rüber zum Wizard für die Erstellung einer Container-Instance. Wenn Sie es sich ansehen, füllen Sie die grundlegenden Informationen aus, wir wissen das alles bereits. Wir haben mehrere Skew-Optionen, aber dann hängt die Verfügbarkeit von unserer Region ab. Sie können also aus Ihrem eigenen Grund mehr darüber lesen. Wenn Sie nicht sehen, was Sie möchten. Wir können unsere Bildquelle wählen. Wir können die Schnellstartbilder haben, in denen wir einfach eines dieser Beispiele auswählen können. Oder wir können aus unserer Registrierung wählen, was wir im Grunde getan haben. Wir könnten also einfach nach der entsprechenden Registrierung und dann nach dem entsprechenden Image und dann nach der gewünschten Version suchen der entsprechenden Registrierung und dann nach dem entsprechenden Image . Wir können die Größe des Containers ändern. Und dann können wir uns andere Register ansehen, unabhängig davon, ob es sich um öffentliche oder private Register und die Anmeldeinformationen entsprechend angeben. Jetzt ist es natürlich wahrscheinlich besser, alles in Azure zu haben und nicht einige Dinge auf Docker Hub und einige Dinge auf einer Null zu haben . Natürlich möchten Sie auf der Grundlage Ihrer Knie, Ihrer Architektur und Ihrer Organisation die bestmöglichen Entscheidungen treffen. Da dies jedoch ein Kurs ohne Entwickler ist, werden wir alles darauf abzielen, alles in Microsoft do Europe zu belassen. Für den Netzwerkteil können wir nun eine öffentliche, private oder keine IP-Adresse wählen . Wir können auch dieses Domain-Label wählen, diese DNS-Ebene. In Ordnung? Das DNS-Namenslabel für die öffentliche IP-Adresse wird also Teil eines vollqualifizierten Domainnamens oder FQDN sein, der für den Zugriff auf den Container verwendet werden kann. Das war also das fehlende Stück bei der anderen Methode, mit der wir diesen ACI oder Container für unser Image erstellt haben. Wenn wir auf Fortgeschrittene umsteigen, sehen wir, dass wir hier eine gewisse Menge Orchestrierungssauerstoff haben . Wir können also unsere Neustartrichtlinie einrichten, in der wir sagen, wenn vielleicht ein Fehler auftritt oder etwas passiert, möchte ich den Container neu starten? Ich kann sagen, wenn etwas passiert, bedeuten Neustarts immer, dass es einen regelmäßigen Neustart geben wird. Das heißt nie, dass es läuft, bis ich es stoppe. Und dann können wir natürlich , nachdem wir all diese eingegeben haben, Notizen erstellen. Sie können auch Ihre Umgebungsvariablen für diesen bestimmten Container angeben Ihre Umgebungsvariablen für , den Sie gerade einrichten. Das ist also die ganze Funktionsweise von Container-Instances in unseren Azure Container Instances. Jetzt gab es natürlich eine Option, mit der wir es in einer Web-App hätten bereitstellen können. Wenn wir also zurückkommen, werden wir uns einen Web App Service ohne Container ansehen. 10. In Azure Container-Instances veröffentlichen: In dieser Lektion werden wir uns den Feinheiten der Erstellung eines containerisierten Web-App-Dienstes befassen. Wir werden es nicht wirklich erstellen. Wir werden uns nur einige der verschiedenen Einstellungen ansehen , die wir beachten müssen. Wenn ich also auf Erstellen klicke, gehen wir zu den Grundlagen über. Natürlich wissen wir, dass wir die grundlegenden Informationen mit unserer Ressourcengruppe ausfüllen . Ich werde diesen speziellen Namen geben. Ich sage nur Microservice-Strich zwei Striche. Etwas Einzigartiges, von dem ich sicher bin , dass es sonst niemand im Internet hat. Und wie werden wir dann veröffentlichen? Also haben wir uns vorher den Code angesehen. Was ist, wenn ich zum Docker-Container gehe? Wenn ich also auf den Docker-Container klicke und feststelle, dass ich gefragt werde, welches Betriebssystem wir bisher verwendet haben, also muss ich das nicht ändern. Ich werde die beste Region verwenden, die meinen Bedürfnissen entspricht. Und dann spezifiziere ich eine neue Serviceanlage. Beachten Sie also, dass ich den Code Service-Plan nicht verwenden kann , da das Hosting-Modell anders ist, wenn es kalt Dann können wir den vorhandenen Serviceplan, den wir von Anfang dieses Kurses hatten, wiederverwenden den vorhandenen Serviceplan, den wir . Da ich mich jedoch für einen Docker-Container entscheide, muss ich einen neuen erstellen und ich bin keiner, der sich für die Premium-Preise entscheidet. Ich kann immer noch den kostenlosen Preis bekommen, also wähle ich einfach den aus. Und wenn wir dann in die dunklere Wanne gehen, haben wir hier mehrere Möglichkeiten. Ich kann einen einzelnen Container gegenüber einem Docker Compose wählen. Und beachten Sie, dass sich das immer noch in der Vorschau befindet. Wenn ich also einen einzelnen Container auswähle, mit dem ich die Bildquelle angeben kann, möchte ich ihn von Docker Hub, einer anderen privaten Registrierung, verwenden . Also eine düstere ganze Band, ECR oder ein Container Registry ohne Inhalt. Dies sind nicht die einzigen beiden Register. Und manchmal müssen Sie möglicherweise Ihre eigene Registrierung in Ihrer eigenen Umgebung bereitstellen , oder? Das sind also alles Optionen. Aber wenn ich meine Azure Container Registry auswähle, kann ich dann die Registrierung auswählen, das Bild und sein Tag auswählen. Ich kann einen Startbefehl setzen, wenn ich möchte. Gehen Sie zum Networking über. Ich bin so ziemlich alles andere bleibt gleich. Was auch immer Sie bereits gewohnt sind, kennen Sie, wenn es um Azure-Web-Apps geht. Die Verwendung des dunkleren Workloads für den Azure Web App Service wäre ein sehr ähnlicher Balken, da nein, wir verwenden Docker-Container. Und natürlich stehen uns all diese Optionen zur Verfügung, wenn es um die Aktualisierung der Tags und die kontinuierliche Entwicklung und den kontinuierlichen Einsatz geht, sobald wir sie bereitgestellt haben. Aus Zeit- und Kostengründen werde ich jedoch nicht fortfahren. Natürlich können Sie mit einem kostenlosen Kontingent fortfahren. Denken Sie jedoch daran, dass die Container Registry und die Container Instances Kosten verursachen. Sie können also experimentieren und entsprechend alle Informationen erhalten, die Sie benötigen. Ich werde jedoch hier aufhören. Wenn wir also zurückkommen, werden wir einen kurzen Blick auf Kubernetes 0s werfen, nur ein bisschen Theorie. Auch hier handelt es sich nicht um einen ausführlichen Kurs über Docker und Orchestrierung. Es gibt eine Menge zu lernen. Ich wollte Ihnen nur ein Gefühl dafür geben wie Container funktionieren. Wir können unsere Images auf Azure platzieren und auf diesen Images basierende Anwendungsinstanzen zusammenstellen. Wenn wir also zurückkommen, werden wir uns einige Theorien rund um Kubernetes 0s ansehen und ein Verständnis dafür bekommen , wie es in diesem aktuellen Kontext funktioniert. 11. Azure Kubernetes-Serviceübersicht: Ordnung Leute, also in dieser Lektion wir nur einige der Grundlagen rund um Kubernetes durchgehen , es ist nur eine Theorie. Wir werden uns nicht mit Kubernetes befassen, ist ein ganz anderes Spiel. Wir werden also nicht auf Details und Diskurse eingehen, aber ich möchte, dass Sie verstehen, warum Sie normalerweise von Kubernetes hören , wenn Sie von Dunkler und Containerisierung hören . Kubernetes bietet einen zuverlässigen Planungs- und Orchestrierungsmechanismus für fehlertolerante Anwendungsworkloads. Das ist eine ganze Menge großer Worte, um zu sagen, dass es uns die Möglichkeit bietet ganze Container zu verwalten, d. h. die Bereitstellung, die Bereitstellung wird auf der Grundlage verschiedener Metriken neu gestartet. Wir können Kubernetes also tatsächlich verwenden um verschiedene Regeln für die Verwaltung oder Orchestrierung von Containern einzurichten . Nochmals, für Cloud-native oder auf Microservices basierende Anwendungen ist dies sehr wichtig, da es mehrere bewegliche Teile gibt , die funktionsfähig sein müssen und wahrscheinlich individuell skaliert werden müssen. Mit Kubernetes können wir also all das orchestrieren. Wir können einem der Dienste mitteilen, dass wir am Tag drei Container benötigen. Ein anderer muss zu einem anderen muss nie skalieren. All diese Dinge sind mit Kubernetes möglich. Dazu verwenden wir einen deklarativen Ansatz, es uns ermöglicht, diesen deklarativen Ansatz für Deployments zu verwenden . Und es wird durch eine Reihe robuster APIs für unsere Verwaltungsanforderungen unterstützt . Es bietet Container-Management zum Organisieren, Hinzufügen, Entfernen oder Aktualisieren von bis zu mehreren Containern gleichzeitig. Wenn wir Kubernetes verwenden, können wir jetzt nützliche Aufgaben wie Selbstheilung, Skalierung, Netzwerkmanagement, Speicher, Container-Updates und geheime Verwaltung abstrahieren Skalierung, Netzwerkmanagement, Speicher, . Der Grund, warum diese Liste so wichtig ist , ist, dass wir gesehen haben, dass einige dieser Herausforderungen, als wir uns mit der Containerisierung befasst haben , gestiegen sind. In Ordnung. Wir haben festgestellt, dass wir sehr darauf geachtet haben, welche IP-Adresse oder besser gesagt welche Portnummer jedem Container zugewiesen wurde. Wir mussten uns ansehen, wie gut, wir haben es in diesen Übungen, die auf der Microservice-Architektur basieren, nicht gemacht . Manchmal müssen Dienste miteinander kommunizieren, also müssen wir auf jeden Fall wissen, wie sie sich miteinander vernetzen werden. Wie werden wir mit dem Speicher umgehen oder werden wir den Container aktualisieren , wenn das Container-Image aktualisiert wird? Wie starten wir den Container um mit dieser neuen Version des Images umzugehen? hatten also das Gefühl, wenn sich etwas anfühlt, starten wir neu Wir haben gesehen, dass wir einiges davon mit den Container-Instances online erledigen können . Und natürlich können wir das wahrscheinlich schaffen, wenn wir uns hinsetzen und uns selbst Geld verdienen. Aber warum sagen wir uns, wann wir Kubernetes verwenden können , ist das automatisiert? Nun, dies ist erneut ein Kommentar aus der Microsoft-Dokumentation. Es ist ein kurzer Überblick darüber, warum unser Kubernetes das ist, was wir Cluster nennen werden. Sie können auch die Experten von Key It Cluster sehen , wie sie aussehen. Von hier aus haben wir also das Steuerflugzeug. Hier würde unsere gesamte Orchestrierungslogik sitzen. Und dann haben wir Cubelets oder Key Instances. Und jeder von ihnen hat den Container. Es wird als Knoten gesehen. Und es hat eine Laufzeit für den Container den Proxy, um mit der Steuerungsebene zu kommunizieren. Und dann, so viele Container es gibt, Kubernetes wird sie wieder alle orchestrieren und verwalten. Wenn wir nun Kubernetes haben, werden wir natürlich einen Azure Kubernetes Service oder kurz AKS haben . Dies bietet uns also eine schnelle Möglichkeit, unsere containerisierten Apps im Handumdrehen zu entwickeln und bereitzustellen. Wir haben also gesehen, wie schnell und einfach es mit ACR und ACI war. Nun, es ist noch einfacher und robuster , wenn wir AKS in die Mischung einbauen. Und es gibt uns die volle Leistung der Kubernetes-Orchestrierung, unterstützt von Microsoft als Ihrer Infrastruktur. Es ist ein Pay-as-you-go-Service. Und auch hier sind Skalierbarkeit und all diese Dinge in Twine enthalten. Dieser Service wird vollständig verwaltet, sodass wir uns keine Gedanken über die zugrunde liegende Software und Hardware machen müssen. Und es bietet mehr Orchestrierungs- und Verwaltungsfunktionen als ECI oder Container Instances. Stellen wir uns das wie einen Management-Service oder eine Verwaltungsdiensterweiterung für unseren ACI-Service vor. Auch hier können all diese Dienste zusammenkommen, um uns dabei zu helfen, eine containerisierte Anwendung bereitzustellen , die durch eine angemessene Orchestrierung und Skalierbarkeit unterstützt wird . Jetzt, wo wir Kubernetes schätzen , ist das zumindest aus theoretischer Sicht. Lassen Sie uns zu Null zurückkehren und unsere Ressourcen aufräumen und uns ansehen, wie wir Speicherplatz freisetzen und unsere Ressourcen aufräumen und etwas Geld sparen können . 12. Resource Clean-up: Da wir uns dem Ende dieses Abschnitts nähern, möchten wir sicherstellen, dass wir unsere Ressourcen aufräumen und nicht mehr Geld als nötig für unser Azure-Abonnement ausgeben . Auch wenn Sie einige der Erbsenpflanzen nicht nachvollziehen konnten , verstehen Sie zumindest die Konzepte und wir schauen uns an, wie wir die Ressourcen entfernen können. Der einfachste Weg, unsere Ressourcen zu entfernen, , zur Ressource zu gehen natürlich, zur Ressource zu gehen und auf Löschen zu klicken. Wenn Sie nun andere Ressourcen in derselben Ressourcengruppe haben , können Sie die Ressourcengruppe jederzeit löschen , wodurch alle Ressourcen entsprechend zerstört werden. Jetzt habe ich einige wichtige Dinge in dieser Ressourcengruppe, daher bin ich nicht bereit, diesen Weg einzuschlagen. Stattdessen lösche ich die Ressourcen einzeln. Um unsere Container-Registry zu löschen, klicke ich einfach auf Löschen. Bist du sicher, dass du löschen möchtest? Okay, und dann wird das den Löschvorgang auslösen . In ähnlicher Weise gehe ich für das Microservice-Bindestrichwerkzeug zur Container-Instance über . Und ich werde weitermachen und das auch löschen. Ich werde auch noch einmal auf eine frühere Operation eingehen, bei der wir die Bilder gelöscht haben. Bilder nehmen Platz ein. Sie können sehen, wenn Sie den Befehl docker images eingeben, alle Bilder, die Sie auf Ihrem Computer haben , und ihre jeweiligen Größen pro Bild. Wenn Sie das Bild also nicht benötigen, können Sie es einfach entfernen. In Ordnung? Hier sehen Sie also, dass das SQL Server-Image 1,33 GB groß ist. Und dann einige der Bilder aus den Apps, an denen wir gearbeitet haben. Alle von ihnen haben zusammen eine Gesamtwahrscheinlichkeit von über einem Gigabyte. Um ein Bild zu entfernen, können Sie einfach auf diese Bild-ID doppelklicken und sie kopieren. Und dann geben Sie in dem Befehl Darker RMI ein, kurz für Remove Image, geben Sie diese ID ein, drücken die Eingabetaste, und dann wird es entfernt. Du kriegst also vielleicht einmal eine Erde. Mal sehen, wie diese Antwort lautet. Eine Antwort von D11 auf die Möglichkeit, dies zu löschen, muss erzwungen werden, während es verwendet wird. Wenn Sie es also erzwingen müssen, wir diesen Befehl erneut ein. Docker sind ein verrückter Bindestrich F, und dann wird das Löschen erzwungen. Ordnung, das ist eine weitere Möglichkeit , einige der Ressourcen zu bereinigen , die Sie in diesem Abschnitt wahrscheinlich gemieden hätten In Ordnung, das ist eine weitere Möglichkeit , einige der Ressourcen zu bereinigen, die Sie in diesem Abschnitt wahrscheinlich gemieden hätten. Lassen Sie uns also diesen Abschnitt des Kurses abschließen. 13. Schlussbemerkung: In diesem Abschnitt haben wir also etwas über Containerisierung und Dunkler gelernt . Und wir haben erkannt, dass Docker eine Technologie ist, die Technologie anbietet und einen Standard für die Containerisierung in der gesamten IT-Branche gesetzt hat . Während wir uns mit Containerisierung und Dunkler beschäftigten, haben wir uns angeschaut, wie wir ein.NET Core-Projekt containerisieren können. Wir haben uns die Verwendung der Docker-Datei angesehen. Wir haben uns mit der Bereitstellung zusätzlicher unterstützender Ressourcen und sogar einiger mündlicher Überlieferungen zur Verwendung von Docker Compose befasst und sogar einiger mündlicher Überlieferungen zur Verwendung von . Wir haben uns auch angesehen, wie wir unsere Apps in Azure Container Instances bereitstellen können unsere Apps in Azure Container Instances und wie wir unser Image, unsere Container-Images , in eine Registrierung hochladen können . In diesem Fall haben wir uns auf Azure Container Registry konzentriert. Aber wenn Sie Docker Desktop verwenden, ist es sehr einfach, den Docker Hub zu pushen , wenn Sie ihn als Ihre Registrierung verwenden möchten. Wir haben auch einen kurzen Überblick über Kubernetes und Container Orchestration gegeben und was das alles bedeutet. Also danke, dass du diesen Abschnitt mit mir durchgehalten hast. Wir sehen uns im nächsten Modul.