So dockerisieren Sie eine Node.js-Anwendung

So Dockerisieren Sie Eine Node Js Anwendung



Das Dockerisieren einer Anwendung umfasst die Angabe aller für die Ausführung der Anwendung erforderlichen Voraussetzungen und die anschließende Verwendung der Docker-Datei zum Erstellen eines speziellen Docker-Images, das mit verschiedenen Maschinen geteilt werden kann. Dockerisieren eines „ Node.js Die Anwendung verbessert die Konsistenz und sorgt für ein bequemes Debuggen auf Seiten des Entwicklers.

Voraussetzungen







Die Voraussetzungen für die Dockerisierung eines „ Node.js Die Anwendung umfasst Folgendes:



  • Docker-Installation.
  • Grundlegendes Verständnis der Node.js-Anwendung.

Wie dockerisiere ich eine Node.js-Anwendung?

A ' Node.js Die Anwendung kann über die folgenden Schritte dockerisiert werden:



Schritt 1: Erstellen Sie eine „package.json“-Datei





Erstellen Sie zunächst ein neues Verzeichnis, in dem alle Dateien gespeichert werden. Erstellen Sie in diesem Verzeichnis das „ package.json ”-Datei, die die App zusammen mit ihren Abhängigkeiten darstellt:

{
'Name' : „docker_web_app“ ,
'Ausführung' : „1.0.0“ ,
'Beschreibung' : „Node.js auf Docker“ ,
'Autor' : „Erster Letzter“ ,
'hauptsächlich' : „server.js“ ,
„Skripte“ : {
'Start' : „Knotenserver.js“
} ,
„Abhängigkeiten“ : {
'äußern' : '^4.18.2'
} }



Schritt 2: Generieren Sie eine „package-lock.json“-Datei

Führen Sie in der Datei „package.json“ den Befehl „ aus. npm installieren ”-Cmdlet. Dadurch wird ein „ package-lock.json ”-Datei, die wie folgt in das Docker-Image kopiert wird:

npm Installieren

Schritt 3: Erstellen Sie einen Server

Erstellen Sie anschließend ein „ server.js ”-Datei, die eine Web-App unter Verwendung des „ Express.js ” Rahmen:

'strikt verwenden' ;

const express = erfordern ( 'äußern' ) ;

const PORT = 8080 ;
const HOST = '0.0.0.0' ;

const app = express ( ) ;
app.get ( '/' , ( req, res ) = > {
erneut senden ( 'Hallo Welt' ) ;
} ) ;

app.listen ( HAFEN, HOST, ( ) = > {
console.log ( ` Läuft auf http: // ${HOST} : ${PORT} ` ) ;
} ) ;

Kommen wir nun zu den Methoden zum Ausführen der Anwendung in einem Docker-Container über ein offizielles Docker-Image.

Schritt 4: Erstellen Sie eine Docker-Datei

Erstellen Sie manuell eine Docker-Datei im selben Verzeichnis, die alle Dateien enthält. Schreiben Sie in diese Datei die folgende Codezeile:

FROM-Knoten: 18
ARBEITSVERZEICHNIS / usr / src / App
COPY-Paket * .json . /
RUN npm Installieren
KOPIEREN . .
EXPONIEREN 8080
CMD [ 'Knoten' , „server.js“ ]

Wenden Sie im obigen Codeausschnitt die unten angegebenen Schritte an:

  • Nutzen Sie zunächst die neueste Langzeitunterstützungsversion 18 des Knotens als Basis-Image, das in enthalten ist Docker-Hub .
  • Erstellen Sie anschließend ein Verzeichnis, das den App-Code im Bild enthält.
  • Dies stellt das Arbeitsverzeichnis für die Anwendung dar.
  • Installieren Sie nun die App-Abhängigkeiten über „ npm “.
  • Notiz: Wenn die npm-Version 4 oder früher verwendet wird, wird keine „package-lock.json“-Datei erstellt.
  • Kopieren Sie nun „ package.json ' Datei. Bündeln Sie außerdem den Quellcode der App im Docker-Image über „ KOPIEREN ' Anweisung.
  • Nutzen Sie die „ EXPONIEREN ” Anweisung, die App an Port 8080 binden zu lassen.
  • Definieren Sie abschließend das Cmdlet zum Ausführen der Anwendung über CMD, das die Laufzeit definiert. Hier das ' Knoten server.js Das Cmdlet wird zum Starten des Servers verwendet.

Schritt 5: Erstellen Sie eine „.dockerignore“-Datei

Erstellen Sie eine „.dockerignore“-Datei im Verzeichnis „ Docker-Datei „Verzeichnis/Ordner mit dem unten angegebenen Inhalt:

node_modules
npm-debug.log

Durch diesen Inhalt wird vermieden, dass die lokalen Module bzw. Debug-Protokolle in das Docker-Image kopiert werden.

Schritt 6: Erstellen Sie das Image

Erstellen Sie nun im Verzeichnis, das die Docker-Datei enthält, das Image mit dem unten angegebenen Cmdlet:

Docker-Build. -T nodejs / Node-Web-App

In diesem Cmdlet: „ nodejs „ bezieht sich auf den Verzeichnisnamen, also geben Sie das Cmdlet entsprechend an und das „ -T ”-Flag markiert das Bild.

Listen Sie nun die Bilder mit diesem Befehl auf:

Docker-Bilder

Schritt 7: Führen Sie das Image aus

Führen Sie das Image mit dem unten angegebenen Cmdlet aus:

Docker-Lauf -P 49160 : 8080 -D nodejs / Node-Web-App

Hier das ' -P Das „Flag“ leitet einen öffentlichen Port zu einem privaten Port innerhalb des Containers um und das „ -D ”-Flag führt den Container im getrennten Modus aus, d. h. im Hintergrund.

Schritt 8: Generieren Sie die Ausgabe der App

Drucken Sie nun die Ausgabe der Anwendung mit den folgenden Befehlen aus:

Docker PS
Docker-Protokolle 77b1e3c8576e

Wenn Sie innerhalb der Containerhülle navigieren müssen, verwenden Sie die Option „ Geschäftsführer „Cmdlet:

Docker Geschäftsführer -Es 77b1e3c8576e / Behälter / bash

Hier, ' 77b1e3c8576e „ stellt die ID des Containers dar, die über das ausgeführte „ kopiert werden kann. Docker PS ”-Befehl zuvor.

Schritt 9: Testen der Anwendung

Rufen Sie zum Testen der Anwendung den Port der App ab, den Docker zugeordnet hat:

Docker PS

Im obigen Cmdlet hat Docker das „ 8080 „Port innerhalb des Containers zum Port“ 49160 ' auf der Maschine.

Schritt 10: Aufrufen der Anwendung

Rufen Sie die Anwendung über „ Locken ”-Cmdlet, indem Sie auf den oben zugeordneten Port verweisen und die erforderlichen Werte eingeben:

Locken -ich lokaler Host: 49160

Schritt 11: Schließen/Beenden Sie die Anwendung

Beenden Sie abschließend die Anwendung über „ töten „Cmdlet:

Docker töten 77b1e3c8576e

Bestätigen Sie außerdem mit diesem Befehl mit Eingabewerten, ob die Anwendung angehalten wurde:

Locken -ich lokaler Host: 49160

Abschluss

A ' Node.js Die Anwendung kann dockerisiert werden, indem ein Server, eine Docker-Datei und die Datei „.dockerignore“ erstellt, das Image erstellt und ausgeführt, die Ausgabe der App generiert und das Anhalten der Anwendung getestet, geschlossen und bestätigt wird. In diesem Artikel wurde die Dockerisierung einer Node.js-Anwendung näher erläutert.