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: 18ARBEITSVERZEICHNIS / 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_modulesnpm-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 PSDocker-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.