Docker verwendet Dockerfile, um die Node.js-Anwendung zu starten

Docker verwendet Dockerfile, um die Node.js-Anwendung zu starten

Schreiben einer Docker-Datei

Am Beispiel des von express automatisch erstellten Verzeichnisses sieht die Verzeichnisstruktur wie folgt aus:

├── /bin
│ └── www
├── /Knotenmodule
├── /öffentlich
├── /Routen
├── /Ansichten
├── Paket-Lock.json
├── Paket.json
├── Ökosystem.config.js
├── app.js
└── Docker-Datei

Erstellen Sie eine neue Dockerfile -Datei im Projektverzeichnis

VON Knoten:10.15
WARTUNGSBEARBEITER [email protected]
KOPIEREN ./app/
ARBEITSVERZEICHNIS /app
Führen Sie den Befehl npm install pm2 -g aus.
EXPOSE 8003
CMD ["pm2-runtime", "ecosystem.config.js"]
  • FROM gibt an, dass das Basisimage die Node-Version 10.15 ist (die offizielle Node-Version kann hier eingesehen werden)
  • MAINTAINER beschreibt den Betreuer des Images
  • Der Befehl COPY kopiert Dateien vom Hostcomputer in das Image. Das Format ist COPY [--chown=<Benutzer>:<Gruppe>] <Quellpfad>... <Zielpfad>. Dabei werden alle Dateien im Projektverzeichnis in das Verzeichnis /app im Image kopiert. Wenn der Zielpfad nicht existiert, erstellt Docker ihn automatisch.
  • Mit WORKDIR wird das Arbeitsverzeichnis angegeben, also das Verzeichnis, in dem CMD ausgeführt wird.
  • Der Befehl RUN wird zum Ausführen von Shell-Befehlen verwendet. Hier wird er zum Installieren von pm2 verwendet.
  • Mit dem Befehl EXPOSE wird der vom Laufzeitcontainer bereitgestellte Service-Port deklariert. Beachten Sie jedoch, dass der Dienst dieses Ports zur Laufzeit nicht aktiviert wird. Dieser Befehl dient hauptsächlich dazu, Benutzern zu helfen, den Daemon-Port des Spiegeldienstes zu verstehen, um die Konfigurationszuordnung zu erleichtern. Darüber hinaus wird bei Verwendung der zufälligen Portzuordnung der EXPOSE-Port automatisch zufällig zugeordnet.
  • CMD ist der Standardstartbefehl des Container-Hauptprozesses

Erstellen des Images

Ausführen im Projektverzeichnis

Docker-Build -t Express-App:v1.

Wenn der Build erfolgreich ist, überprüfen Sie die Spiegelliste

Docker-Bilder

Das Bild express-app:v1 sollte ausgegeben werden

Ausführen des Containers

docker run -d -p 8003:3000 --name="express-app" express-app:v1

docker run ist eine Abkürzung der beiden Befehle docker create und docker start .

  • -d steht für --detach und bedeutet, dass der Container im Hintergrund laufen soll.
  • -p gibt die Portzuordnung zwischen Host und Container an. Die linke Seite ist der Port des Hosts und die rechte Seite der Port des Containers. Das heißt, der Zugriff auf Port 8003 des Hosts wird dem Port 3000 im Container zugeordnet.
  • --name legt den Containeralias fest. Wenn nicht angegeben, generiert Docker einen zufälligen Namen, beispielsweise tender_swirles .

implementieren

Docker PS

Die normale Anzeige sieht folgendermaßen aus

Fügen Sie den Parameter -a hinzu, um alle gestarteten Container anzuzeigen.

Betreten des Containers

Wenn Sie den Container öffnen möchten, führen Sie den folgenden Befehl aus

Docker Exec -it Express-App Bash 

-i und -t werden normalerweise zusammen verwendet. -i startet den interaktiven Modus -t gibt an, dass ein Terminal zugewiesen werden muss. Sie können die Wirkung testen, wenn Sie einen der beiden Parameter nicht angeben.

Der Befehl attach “ ähnelt exec und lautet docker attach express-app . Das Beenden von stdin stoppt jedoch den Container. Daher wird empfohlen, den Befehl exec zu verwenden.

Betrieb schließen

Stoppen des Containers

Docker stoppt Express-App

Löschen eines Containers

Docker RM Express-App

Wenn der Container beim Löschen noch ausgeführt wird, müssen Sie den Parameter -f hinzufügen

Löschen eines Bildes

Docker RMI Express-App: V1

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:
  • So erstellen Sie Ihr eigenes Image mit Dockerfile
  • So verwenden Sie Dockerfile zum Erstellen von Images in Docker
  • Idea konfiguriert Maven-Tomcat-Plugin zur Implementierung der Projektbereitstellung
  • Detaillierte Erläuterung der Rolle des Spring-Boot-Maven-Plugin-Plugins
  • Verwenden Sie das Maven-Shade-Plugin, um ein ausführbares Jar-Paket in Java zu erstellen
  • minimalistisches Dockerfile-Maven-Plugin-Tutorial (empfohlen)

<<:  Detailliertes Tutorial zur Installation und Deinstallation von MySql

>>:  Tipps zum Schreiben prägnanter React-Komponenten

Artikel empfehlen

CentOS8 - bash: verstümmelte Zeichen und Lösungen

Diese Situation tritt normalerweise auf, weil das...

Vue implementiert Drag-Fortschrittsbalken

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierte Erklärung zur Verwendung von Titel-Tags und Absatz-Tags in XHTML

XHTML-Überschriftenübersicht Wenn wir Word-Dokume...

Nodejs konvertiert JSON-String in JSON-Objekt-Fehlerlösung

Wie konvertiere ich eine JSON-Zeichenfolge in ein...

MySQL-Datenaggregation und -gruppierung

Wir müssen Daten häufig zusammenfassen, ohne sie ...

Beispielanalyse des Seitenaufteilungsprinzips des MySQL-Clusterindex

Dieser Artikel veranschaulicht anhand eines Beisp...

So verwenden Sie Elemente in React-Projekten

Dies ist mein erstes Mal, dass ich das Element-Fr...

MySQL Deep Paging (wie man schnell Millionen von Daten paginiert)

Inhaltsverzeichnis Vorwort Fall Optimierung Zusam...

Ubuntu führt regelmäßig Beispielcode eines Python-Skripts aus

Originallink: https://vien.tech/article/157 Vorwo...

Detaillierte Erklärung zur Verwendung von CSS3 RGB und RGBA (transparente Farbe)

Ich glaube, jeder Mensch ist sehr sensibel für Fa...