Dieser Artikel zeigt Ihnen, wie Sie Ihre Knotenanwendung in einem Docker-Container bereitstellen.
Hinweis: In diesem Lernprogramm wird davon ausgegangen, dass Docker installiert und einsatzbereit ist.
Schritt 1: Erstellen Sie Ihre Knotenanwendung
Erstellen Sie ein Verzeichnis mit dem Namen src. Wir werden dieses Verzeichnis verwenden. Erstellen Sie eine Datei src/package.jsonmit dem Namen :
{
"name": "hello_world",
"private": true,
"version": "0.0.1",
"description": "Hello world Example",
"author": "",
"dependencies": {
"express": "3.2.4"
}
}
Erstellen Sie nun eine src/index.js, die Folgendes enthält:
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello from Docker\n');
});
app.listen(8080);
console.log('Running on http://localhost:8080');
Bitte beachten Sie, dass Sie den Port 8080nach Belieben ändern können. In diesem Beispiel wird dieser Port jedoch für unsere Anwendung verfügbar gemacht. Nachdem Sie diese beiden Dateien erstellt haben, können Sie mit dem nächsten Schritt fortfahren.
Schritt 2: Erstellen Sie eine Docker-Datei
Mit einer "Docker-Datei" können Sie Docker-Images basierend auf den darin enthaltenen Anweisungen erstellen und bereitstellen. Erstellen Sie eine Datei mit dem Namen Dockerfileund füllen Sie sie mit folgendem Inhalt:
FROM centos:latest
MAINTAINER Name Here <username@localhost>
RUN rpm -Uvh http://mirror.pnl.gov/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
RUN yum install nodejs npm -y
COPY ./src /opt/src
RUN cd /opt/src; npm install
EXPOSE 8080
CMD ["node", "/opt/src/index.js"]
Erläuterung:
FROM centos:latest
Dies verwendet ein Bild namens centos. Wenn auf Ihrem Host kein Image verfügbar ist, zieht Docker eines aus seinem Repository.
MAINTAINER Name Here <username@localhost>
Mit dieser Anweisung können Sie den Autor für das zu erstellende Bild festlegen.
RUN rpm -Uvh http://mirror.pnl.gov/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
RUN yum install nodejs npm -y
…
RUN cd /opt/src; npm install
"RUN" führt die angegebenen Shell-Befehle aus. In diesem Beispiel wird die Epel-Release-RPM heruntergeladen und installiert sowie NodeJS und Npm aus dem Repository installiert. Nach dem nächsten Vorgang wird es in das Projektverzeichnis verschoben und ausgeführt npm install, um Abhängigkeiten für Ihre Anwendung zu installieren.
COPY ./src /opt/src
Kopieren Sie das Verzeichnis (und die Dateien) vom Host in den Container.
EXPOSE 8080
Öffnen Sie den Port 8080 für die Außenwelt.
CMD ["node", "/opt/src/index.js"]
CMD stellt die Standardausführung für den Container bereit.
Nachdem Sie die Datei genau so erstellt haben, wie sie oben angezeigt wird, können Sie mit dem nächsten Schritt fortfahren.
Schritt 3: Image erstellen
Führen Sie den folgenden Befehl aus, um Ihr Image zu erstellen:
docker build -t name/application .
Dadurch wird ein Image mit dem Repository-Namen von erstellt name/application. Wenn keine Fehler vorliegen, können Sie mit dem nächsten Schritt fortfahren.
Schritt 4: Stellen Sie die Anwendung bereit und testen Sie sie
Nachdem alles eingerichtet ist, können Sie Ihr Image wie folgt ausführen:
docker run -p 49160:8080 -d name/application
Führen Sie zum Testen Ihrer Anwendung den folgenden Befehl vom Host aus:
curl http://172.17.42.1:49160/
Wenn Sie sehen Hello from Docker, haben Sie Ihr Docker-Image erfolgreich bereitgestellt. Wenn Sie dies mit Ihrem Browser testen möchten, besuchen Sie http://[SERVER_IP]:49160in Ihrem Browser (ersetzen Sie die IP-Adresse entsprechend), und Sie sehen dieselbe Meldung.