So stellen Sie den Node.js-Dienst mithilfe von Dockerfile bereit

So stellen Sie den Node.js-Dienst mithilfe von Dockerfile bereit

Dockerfile initialisieren

Angenommen, unser Projekt heißt „Express“, erstellen und bearbeiten Sie die Dockerfile-Datei im Express-Projekt:

$ vim Docker-Datei

Vom Knoten: neueste

RUN mkdir -p /home/www/express
ARBEITSVERZEICHNIS /home/www/express

KOPIEREN . /home/www/express

Führen Sie npm install aus

EXPOSE 3000

EINSTIEGSPUNKT ["npm", "ausführen"]
CMD ["Start"]

Diese Datei enthält die folgenden Befehle:

  • FROM node:latest - gibt an, dass die neueste Version des Knoten-Basisabbilds verwendet werden soll
  • RUN mkdir -p /home/www/express – erstellt das Verzeichnis /home/www/express innerhalb des Containers
  • WORKDIR /home/www/express - Legt das Arbeitsverzeichnis im Container auf /home/www/express fest.
  • COPY . /home/www/express - Kopiert den Inhalt des aktuellen Verzeichnisses auf dem Host in das Spiegelverzeichnis /home/www/express
  • RUN npm install - npm install installiert die von der Anwendung benötigten NPM-Pakete
  • EXPOSE 3000 - Öffnen Sie den Port 3000 des Containers für die Außenwelt
  • ENTRYPOINT ["npm", "run"] – Der Befehl, der nach dem Start des Containers ausgeführt werden soll. Kann nicht durch von Docker Run bereitgestellte Parameter überschrieben werden
  • CMD ["start"] - Der Befehl, der beim Starten des Containers ausgeführt werden soll. Er kann durch die von docker run bereitgestellten Parameter überschrieben werden.

Erstellen des Images

Nachdem Sie die Dockerfile-Datei geschrieben haben, können Sie das Image mit dem Befehl „Docker Build“ erstellen:

$ sudo docker build -t test/express.

Wir verwenden den Parameter -t, um das Bild test/express zu benennen. Der Build-Prozess läuft ungefähr wie folgt ab:

Senden des Build-Kontexts an den Docker-Daemon 29,7 kB
Schritt 1/8: VON registry.src.followme.com:5000/node:v1
 ---> c99c549e8227
Schritt 2/8: RUN mkdir -p /home/www/express-app
 ---> Wird ausgeführt in 8be9a90629b0
 ---> b9f584851225
Zwischenbehälter ausbauen 8be9a90629b0
Schritt 3/8: WORKDIR /home/www/express-app
 ---> 5072c31f9dd9
Zwischencontainer entfernen e9dbf4ce3d8b
Schritt 4/8: KOPIEREN . /home/www/express-app
 ---> a4d1725f15ed
Zwischenbehälter ausbauen 30aa49765015
Schritt 5/8: RUN-Garn
 ---> Wird ausgeführt in f181c243deaa
Garn installieren v1.3.2
[1/4] Pakete auflösen...
[2/4] Pakete werden abgerufen...
[3/4] Abhängigkeiten verknüpfen...
[4/4] Neue Pakete erstellen...
Erledigt in 9,46 Sek.
 ---> d390931d73e6
Zwischenbehälter entfernen f181c243deaa
Schritt 6/8: EXPOSE 3000
 ---> Wird ausgeführt in 94101ab38864
 ---> 43199a8a5a90
Zwischenbehälter ausbauen 94101ab38864
Schritt 7/8: ENTRYPOINT npm ausführen
 ---> Wird ausgeführt in 80b1318962cf
 ---> 6b203c50e855
Zwischenbehälter ausbauen 80b1318962cf
Schritt 8/8: CMD starten
 ---> Läuft in a9909e537f59
 ---> d56eae48377c
Zwischenbehälter entfernen a9909e537f59
Erfolgreich erstellt d56eae48377c

Ausführen des Containers

Nachdem das Image erstellt wurde, können Sie über das erstellte Image einen Container erstellen/ausführen, um die Docker-Bereitstellung der Express-Anwendung zu realisieren.

Führen Sie einen Container mit dem Tets/Express-Image aus:

$ sudo docker run -d --name experss-app -p 3000:3000 test/express

Im obigen Vorgang haben wir den Container durch das Test-/Express-Image laufen lassen und den Container „Express-App“ genannt. Beim Ausführen des Containers geben wir außerdem den Parameter -d an, wodurch der Container im Hintergrund ausgeführt wird. Der Parameter -p ordnet Port 3000 des Hosts Port 3000 des Containers zu. Nachdem Sie den Container ausgeführt haben, können Sie den laufenden Container mit dem Befehl „Docker PS“ anzeigen. Der Dienst ist nun über localhost:3000 erreichbar.

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 Erklärung der CMD- und ENTRYPOINT-Befehle im Dockerfile
  • So schreiben Sie das beste Dockerfile
  • Detaillierte Erklärung der COPY- und ADD-Befehle in Dockerfile
  • Eine detaillierte Einführung in die Dockerfile-Image-Erstellungsdatei und verwandte Befehle in Docker
  • Detaillierte Erläuterung der Verwendung von Dockerfile zum Erstellen eines MySQL-Images und zum Implementieren der Dateninitialisierung und Berechtigungseinstellung
  • Detaillierte Erläuterung der spezifischen Verwendung der ENV-Anweisung in Dockerfile
  • Beispiele für die Verwendung von Dockerfile
  • Dockerfile zum Erstellen des offiziellen Tomcat-Images und detaillierte Erklärung zur Image-Verwendung
  • Zusammenfassung gängiger Befehle in Dockerfile
  • So stellen Sie ein SpringBoot-Projekt mit Dockerfile bereit
  • So erstellen Sie mit Dockerfile ein Spiegelbild der Java-Laufzeitumgebung
  • So erstellen Sie Ihr eigenes Image mit Dockerfile
  • Einführung in die Dockerfile-Anweisungen ADD und COPY
  • Detaillierte Erklärung zu Multi-Stage (Multi-Stage Build) in Dockerfile
  • Docker-Grundlagen: Detaillierte Erklärung der Dockerfile-Befehle
  • Dockerfile-Anweisungen erklärt
  • Eine kurze Einführung in die Dockerfile-Anweisung VOLUME
  • Dockerfile – einfache Einführung

<<:  So installieren und konfigurieren Sie MySQL 5.7.19 unter CentOS 6.5

>>:  Uniapps Erfahrung in der Entwicklung kleiner Programme

Artikel empfehlen

Detaillierte Erklärung zur Installation der PHP-Curl-Erweiterung unter Linux

Dieser Artikel beschreibt, wie man die PHP-Curl-E...

Detaillierter Prozess zum Erstellen von mysql5.7.29 unter Centos7 von Linux

1. MySQL herunterladen 1.1 Download-Adresse https...

Docker+Nextcloud zum Erstellen eines persönlichen Cloud-Speichersystems

1. Docker-Installation und -Start yum installiere...

JS Cross-Domain-Lösung React-Konfiguration Reverse-Proxy

Domänenübergreifende Lösungen jsonp (get simulier...

js zur Realisierung eines einfachen Puzzlespiels

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

Einige Vorschläge für HTML-Anfänger und Neulinge, Experten können sie ignorieren

Gefühle: Ich bin Backend-Entwickler. Manchmal fühl...

Vue Grundlagen Listener Detaillierte Erklärung

Inhaltsverzeichnis Was ist ein Listener in Vue? V...

Anwendungsverschachtelung von HTML-ul-ungeordneten Tabellen

Anwendungsschachtelung ungeordneter Listen Code ko...

Der Unterschied zwischen MySQL count(1), count(*) und count(field)

Inhaltsverzeichnis 1. Erster Blick auf COUNT 2. D...