So stellen Sie Ihre erste Anwendung mit Docker bereit

So stellen Sie Ihre erste Anwendung mit Docker bereit

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:
  • Detaillierte Schritte zum Bereitstellen von Tomcat- und Java-Anwendungen in Docker
  • Tutorial zum Bereitstellen von Python-Anwendungen auf Docker
  • Detaillierte Erklärung zum Einrichten von Go und Bereitstellen von Anwendungen in Docker
  • Beispiel für die Bereitstellung einer Spring Boot-Anwendung mit Docker
  • So stellen Sie eine Spring-Boot-Maven-Anwendung mit Docker bereit
  • Beispiel für die Bereitstellung einer Django-Anwendung mit Docker
  • Ein Beispiel für die schnelle Bereitstellung von Webanwendungen mit Tomcat in Docker
  • So verwenden Sie Docker zum Bereitstellen von Front-End-Anwendungen
  • Docker-Praxis – Nodejs-Anwendung bereitstellen

<<:  vue_drf implementiert SMS-Bestätigungscode

>>:  Grafisches Tutorial zur Installation und Konfiguration des MySQL Community Server 8.0.16 unter Windows

Artikel empfehlen

So unterstreichen Sie das A-Tag und ändern die Farbe vor und nach dem Klicken

Code kopieren Der Code lautet wie folgt: ein:link...

Das Phänomen des Margin-Top-Collapses und die spezifische Lösung

Was ist ein Margin-Top-Collaps? Der Margin-Top-Co...

Detaillierte Erklärung der Standardwerte von Breite und Höhe in CSS: auto und %

abschließend % der Breite: definiert die prozentu...

Detaillierte Analyse der MySQL-Optimierung von like und = Leistung

Einführung Die meisten Leute, die schon einmal Da...

Eine vollständige Liste der Meta-Tag-Einstellungen für Mobilgeräte

Vorwort Als ich zuvor das Front-End studierte, be...

Navicat: Mehrere Möglichkeiten zum Ändern des MySQL-Datenbankkennworts

Methode 1: Verwenden Sie den Befehl SET PASSWORD ...

Implementierungsmethode und Beispielcode des Tomcat-Klassenladers

Tomcat definiert intern mehrere ClassLoader, soda...

JavaScript imitiert die Spezialeffekte der Jingdong-Lupe

In diesem Artikel wird der spezifische Code von J...

Konfigurationsschritte für die MySQL-Gruppenreplikation (empfohlen)

MySQL-Group-Replication ist eine neue Funktion, d...

So erstellen Sie WeChat-Spiele mit CocosCreator

Inhaltsverzeichnis 1. Laden Sie die WeChat-Entwic...

Unterschied zwischen MySQL Btree-Index und Hash-Index

In MySQL werden die meisten Indizes (wie PRIMARY ...

So installieren Sie allgemeine Komponenten (MySQL, Redis) in Docker

Docker installiert MySQL Docker-Suche MySQL. Such...