Im vorherigen Artikel haben Sie Docker Desktop installiert und Kubernetes aktiviert. Als Nächstes können Sie Anwendungen in Containerform bereitstellen. Normalerweise umfasst der Entwicklungsworkflow Folgendes: 1. Erstellen Sie zunächst ein Docker-Image, um einzelne Container für jede Komponente der Anwendung zu erstellen und zu testen. 2. Fügen Sie den Container und die unterstützende Infrastruktur zu einer vollständigen Anwendung zusammen. Dies kann mithilfe einer Docker-Stack-Datei oder Kubernetes YAML erreicht werden. 3. Testen, teilen und implementieren Sie vollständige Containeranwendungen. In diesem Beitrag konzentrieren wir uns auf Schritt 1 dieses Workflows: Erstellen eines Images basierend auf einem vorhandenen Container. Denken Sie daran, dass ein Docker-Image das private Dateisystem erfasst, in dem der containerisierte Prozess ausgeführt wird. Wir müssen ein Image erstellen, das genau das enthält, was unsere Anwendung zum Ausführen benötigt. Eine containerisierte Entwicklungsumgebung lässt sich leichter einrichten als eine herkömmliche Entwicklungsumgebung, wenn Sie erst einmal gelernt haben, wie man Images erstellt (siehe weiter unten). Dies liegt daran, dass die containerisierte Entwicklungsumgebung alle von der Anwendung benötigten Abhängigkeiten im Docker-Image isoliert; auf dem Entwicklungscomputer muss außer Docker nichts installiert werden (d. h. die Bereitstellung der Entwicklungsumgebung hängt nur vom Docker-Image ab). Auf diese Weise können Sie problemlos Anwendungen für verschiedene Stacks entwickeln, ohne die Umgebung auf Ihrer Entwicklungsmaschine zu ändern. Konfiguration 1. Klonen Sie das Beispielprojekt zur Demonstration von GitHub. git clone -b v1 https://github.com/docker-training/node-bulletin-board cd node-bulletin-board/bulletin-board-app Dies ist eine einfache Bulletin-Board-Anwendung, die in node.js geschrieben ist. Nehmen wir für dieses Beispiel an, dass Sie diese Anwendung geschrieben haben und nun versuchen, sie in einem Container bereitzustellen. Die Verzeichnisstruktur ist in Abbildung 1.1 dargestellt. Abbildung 1.1 Sehen Sie sich die Datei mit dem Namen „Dockerfile“ an. Sie beschreibt, wie ein privates Dateisystem für den Container zusammengestellt wird. Außerdem enthält sie einige Metadaten, die beschreiben, wie der Container basierend auf diesem Image ausgeführt wird. Das Dockerfile der Bulletin-Board-Anwendung ist in Abbildung 1.2 dargestellt. Abbildung 1.2 Der erste Schritt beim Bereitstellen einer Containeranwendung besteht darin, eine Docker-Datei zu schreiben. Sie können sich diese Dockerfile-Befehle als einen einzelnen Schritt zum Erstellen eines Images vorstellen. Die Schritte sind wie folgt: 1. Verwenden Sie das Image mit der Versionsnummer 6.11.5 als Basisimage für diesen Build. 6.11.5 Das Basisbild ist das vom offiziellen node.js bereitgestellte Bild 2. Geben Sie das Arbeitsverzeichnis des Image-Dateisystems als /usr/src/app an. Das heißt, jedes Mal, wenn Sie sich bei einem auf diesem Image basierenden Container anmelden, wechselt das Verzeichnis automatisch zu /usr/src/app 3. Kopieren Sie die Datei package.json an den aktuellen Speicherort des Images, d. h. /usr/src/app/package.json 4. Führen Sie den Befehl npm install im Image-Dateisystem aus (er liest package.json, um die Knotenabhängigkeiten der Anwendung zu ermitteln und sie zu installieren). 5. Kopieren Sie den restlichen Quellcode der Anwendung vom Host in das Image. Sie sehen, dass diese Schritte im Großen und Ganzen dieselben sind, die Sie möglicherweise zum Einrichten und Installieren der Anwendung auf Ihrem Host ausführen würden. Durch die Verwendung einer Docker-Datei können wir sie jedoch erneut in einem portablen, eigenständigen Docker-Image (dem offiziellen Node.js-Image) erstellen. Die obigen Schritte erstellen das Dateisystem für das Image, aber es gibt noch eine weitere Zeile im Dockerfile, die CMD-Befehlszeile. CMD ["Auszuführendes Programm", "Parameter 1", "Parameter 2"] teilt dem Befehl oder Skript mit, dass es ausgeführt werden soll, wenn der Container gestartet wird. Der Befehl in der Docker-Datei teilt diesem Image mit, dass der zu unterstützende containerisierte Prozess npm start ist. Hinweis: Ein Dockerfile kann nur einen CMD-Befehl haben. Wenn mehrere Befehle vorhanden sind, wird der letzte ausgeführt. Ein Dockerfile beginnt immer mit einem FROM-Befehl. Das obige ist ein einfaches Dockerfile. Weitere Dockerfile-Anweisungen finden Sie in der Dockerfile-Referenz. Erstellen und Testen des Images Da wir nun den Quellcode und die Docker-Datei haben, ist es an der Zeit, unser erstes Image zu erstellen und sicherzustellen, dass die von diesem Image gestarteten Container wie erwartet funktionieren. Hinweis: Dieses Beispiel verwendet Linux-Container. Benutzer, die Docker Desktop verwenden, klicken mit der rechten Maustaste auf das Docker-Logo in der Taskleiste und stellen sicher, dass in ihrer Umgebung Linux-Container ausgeführt werden. Wenn nicht, klicken Sie auf „Zu Linux-Containern wechseln ...“. Wie in Abbildung 1.3 dargestellt, verwendet meine aktuelle Demonstrationsumgebung bereits Linux-Container. Abbildung 1.3 1. Rufen Sie Powershell auf und stellen Sie sicher, dass Ihr aktuelles Verzeichnis node-bulletin-board/bulletin-board-app ist, wie in Abbildung 1.4 gezeigt, und führen Sie den Befehl aus # Docker-Image erstellen -t Bulletinboard:1.0. Abbildung 1.4 Am Ende des Builds wird die folgende Meldung ausgegeben, die angibt, dass das Image erfolgreich erstellt wurde. Erfolgreich gebaut 49f9b9fb7daf Bulletinboard erfolgreich markiert:1.0 Die obige Befehlsliste erstellt ein Bild mit dem Namen „Bulletinboard“ und dem Tag 1.0, wie in Abbildung 1.5 dargestellt. Abbildung 1.5 2. Führen Sie einen Container mit dem Namen bb basierend auf dem Bulletinboard-Image aus, und führen Sie ihn im Hintergrundmodus aus. Dabei ordnen Sie den internen Port 8080 des Containers dem Port 8000 des Hostcomputers zu. # Docker-Container ausführen --publish 8000:8080 --detach --name bb bulletinboard:1.0 Wir können den folgenden Befehl verwenden, um zu sehen, auf welche Parameter der Befehl „run“ folgen kann # Docker-Container ausführen --help Wir melden uns beim Container an und sehen, dass das aktuelle Verzeichnis das im Dockerfile festgelegte Arbeitsverzeichnis ist, wie in Abbildung 1.6 dargestellt. Abbildung 1.6 3. Greifen Sie über http://localhost:8000 auf Ihre Anwendung zu. Sie sehen die folgende Schnittstelle, wie in Abbildung 1.7 dargestellt. Dies bedeutet, dass die Bereitstellung des Anwendungscontainers erfolgreich war. Der nächste Schritt besteht darin, zu testen, zu erstellen, zu veröffentlichen und freizugeben. Abbildung 1.7 4. Das Löschen eines Containers bedeutet, dass der Lebenszyklus des Containers endet. # Docker-Container rm --force bb Zusammenfassen Mithilfe der oben genannten Punkte konnten wir eine einfache Containerisierung unserer Anwendung durchführen und bestätigen, dass unsere Anwendung erfolgreich in ihrem Container ausgeführt wird. Der nächste Schritt besteht darin, die Kubernetes-YAML-Dateien zu schreiben, die beschreiben, wie Container auf Kubernetes ausgeführt und verwaltet werden. Darüber hinaus sollten wir die Nutzung von Dockerfile zum Erstellen von Images verstärken. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: vue_drf implementiert SMS-Bestätigungscode
Code kopieren Der Code lautet wie folgt: ein:link...
Was ist ein Margin-Top-Collaps? Der Margin-Top-Co...
abschließend % der Breite: definiert die prozentu...
Einführung Die meisten Leute, die schon einmal Da...
Linux ist derzeit das am weitesten verbreitete Se...
Vorwort Als ich zuvor das Front-End studierte, be...
Methode 1: Verwenden Sie den Befehl SET PASSWORD ...
Tomcat definiert intern mehrere ClassLoader, soda...
In diesem Artikel wird der spezifische Code von J...
MySQL-Group-Replication ist eine neue Funktion, d...
Inhaltsverzeichnis 1. Laden Sie die WeChat-Entwic...
Seit ich den Mac zurückgegeben habe, liegt mein u...
In MySQL werden die meisten Indizes (wie PRIMARY ...
Testumgebung: C:\>systeminfo | findstr /c:&quo...
Docker installiert MySQL Docker-Suche MySQL. Such...