Docker-Leitfaden: Dockerizing Nodejs Express-Anwendung auf Ubuntu 18.04

Docker ist ein Open-Source-Projekt, das Entwicklern und Systemadministratoren eine offene Plattform bietet, um Anwendungen als leichtgewichtige Container zu erstellen, zu paketieren und überall auszuführen. Docker automatisiert die Bereitstellung von Anwendungen innerhalb von Software-Containern.

Nodejs ist eine Open-Source-JavaScript-Laufzeitumgebung. Es ist plattformübergreifend, kann unter Linux, Windows, MacOS, FreeBSD, etc. installiert werden. Nodejs ist sehr nützlich für die Erstellung von Server- und Desktop-Anwendungen.

In diesem Tutorial zeige ich Ihnen, wie Sie ein Docker-Image für ein vorhandenes Nodejs-Express-Anwendungsprojekt in Ubuntu 18.04 erstellen. Wir lernen, wie man eine Nodejs-Anwendung andockt und dann die Anwendung mit Hilfe eines Docker-Compose-Script als Container in der Docker-Umgebung einsetzt.

Voraussetzungen

  • Ubuntu 18.04
  • Root-Privilegien

Was wir tun werden

  1. Docker CE installieren
  2. Docker-Compose-Installation
  3. Einrichten des Nodejs-Express-Projekts
  4. Das Projekt aufbauen
  5. Prüfung

Schritt 1 – Docker CE installieren

In diesem Tutorial werden wir die docker-ce Community-Edition aus dem Docker-Repository installieren. Wir werden eine docker-ce Community-Edition und docker-compose installieren, die compose-Datei Version 3 unterstützt.

Bevor Sie docker-ce installieren, installieren Sie die benötigten Docker-Abhängigkeiten mit dem apt-Befehl.

sudo apt install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

Fügen Sie nun den Andockschlüssel und das Repository hinzu, indem Sie die unten stehenden Befehle ausführen.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

Docker installieren

Installieren Sie das Paket docker-ce.

sudo apt install docker-ce

Starten Sie nach Abschluss der Installation den Docker-Dienst und ermöglichen Sie, dass er bei jedem Systemstart gestartet wird.

systemctl start docker
systemctl enable docker

Start Docker

Als Nächstes werden wir den normalen Benutzern Berechtigungen zum Ausführen und Verwalten von Andockcontainern geben.

Fügen Sie einen neuen Benutzer mit dem Namen ‚mohammad‘ hinzu und fügen Sie ihn der Docker-Gruppe hinzu.

useradd -m -s /bin/bash mohammad
usermod -a -G docker mohammad

Melden Sie sich jetzt als ‚mohammad‘-Benutzer an und starten Sie Docker-Container-Hallo-World.

su - mohammad
docker run hello-world

Und Sie erhalten das Ergebnis wie unten dargestellt.

Benutzer hinzufügen und den Benutzer testen

Schritt 2 – Docker-Compose installieren

In diesem Schritt installieren wir docker-compose manuell aus der Binärdatei, die von GitHub heruntergeladen werden kann. Wir werden die neueste Docker-Compose-Version installieren, die die Compose-Version 3 unterstützt.

Laden Sie die neueste Version 1.22.0 von docker-compose mit dem curl-Befehl in das Verzeichnis ‚/usr/local/bin‘ herunter und machen Sie sie dann mit chmod ausführbar.

Führen Sie die folgenden Befehle aus.

sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Und die neueste Docker-Compose-Version wurde installiert. Überprüfen Sie dies, indem Sie den Befehl docker-compose unten ausführen.

docker-compose version

Das Ergebnis lautet wie folgt.

Docker installieren Verfassen

Schritt 3 – Einrichten des Nodejs-Express-Projekts

In diesem Abschnitt werden wir die Anwendungsumgebung von Nodejs konfigurieren. Wir werden eine einfache nodejs-Anwendung verwenden, die mit dem ‚Expressgenerator‘ generiert werden kann.

Melden Sie sich bei dem Benutzer ‚mohammad‘ an.

su - mohammad

Erstellen Sie ein neues Verzeichnis mit dem Namen ‚project‘ und gehen Sie dorthin.

mkdir -p project
cd project

Generieren Sie jetzt eine einfache Hallo-Wort-Nodejs-Anwendung mit dem unten stehenden ‚express‘-Befehl.

express hakase-app

Anmerkung:

Stellen Sie sicher, dass nodejs, npm und die ‚express-generator‘-Pakete auf dem System installiert sind.

Und Sie erhalten die einfache Nodejs-Express-Anwendung im Verzeichnis ‚hakase-app‘.

Installieren Sie das Nodejs-Express-Projekt

Als nächstes werden wir unser benutzerdefiniertes Docker-Image für die ‚hakase-app‘ nodejs-Anwendung erstellen.

Erstellen Sie unter dem ‚project‘-Verzeichnis eine neue ‚Dockerdatei‘ mit vim.

vim Dockerfile

Fügen Sie dort die folgende Docker-Bild-Konfiguration ein.

FROM node:8.11.4-alpine

RUN mkdir -p /src
RUN npm install express-generator -g

WORKDIR /src
ADD hakase-app/package.json /src/package.json
RUN npm install

EXPOSE 3000
CMD node hakase-app/bin/www

Speichern und beenden.

Verwenden Sie npm zur Installation der Anwendung

Wir erstellen ein neues benutzerdefiniertes Docker-Image für unsere nodejs-Anwendung mit den unten aufgeführten Spezifikationen.

  • Das benutzerdefinierte Bild basiert auf dem offiziellen nodejs-Bild 8.11.4 alpine Version.
  • Wir erstellen ein neues Verzeichnis für unser Projekt ‚/src‘.
  • Installieren Sie den ‚Expressgenerator‘ auf dem benutzerdefinierten Bild.
  • Fügen Sie die Datei ‚package.json‘, die das Anwendungsprofil und die benötigten Pakete enthält, zum Verzeichnis ‚/src‘ hinzu.
  • Installieren Sie alle nodejs-Pakete, die für das Projekt benötigt werden, auf der Grundlage der Datei ‚package.json‘.
  • Exportieren Sie den Port 3000 mit dem standardmäßigen Exec-Startbefehl ’node hakase-app/bin/www‘.

Als Nächstes werden wir das benutzerdefinierte Bild auf der Grundlage des Docker-Compose-Drehbuchs erstellen.

Erstellen Sie eine neue yml-Datei ‚docker-compose.yml‘ mit vim.

vim docker-compose.yml

Fügen Sie dort die folgende Konfiguration ein.

version: '3'

services:

  hakase-app:
    build: .
    volumes:
      - ./hakase-app:/src/hakase-app
    ports:
      - "3000:3000"
    restart: always

Speichern und beenden.

Docker erstellen, yml-Datei zusammenstellen

Wir erstellen einen neuen Docker-Dienst namens ‚hakase-app‘, und gleichzeitig erstellen wir das benutzerdefinierte Docker-Image auf der Grundlage der ‚Docker-Datei‘ im Projektverzeichnis und werden die hakase-app-Anwendungsdateien automatisch einbinden.

Die Einrichtung von Nodejs Express ist abgeschlossen.

Schritt 4 – Aufbau und Durchführung des Projekts

Melden Sie sich als ‚mohammad‘-Benutzer an und gehen Sie in das ‚Projekt‘-Verzeichnis

su - mohammad
cd project/

Erstellen Sie das Image und die Hakase-App des Docker-Dienstes mit dem folgenden Befehl docker-compose.

docker-compose build

Nun erhalten Sie das Ergebnis wie unten dargestellt.

Bauen Sie das Docker-Projekt

Und wenn es fertig ist, lassen Sie den „hakase-app“-Dockerservice laufen.

docker-compose up -d

Das Ergebnis lautet wie folgt.

Docker verwenden - zusammensetzen

Das benutzerdefinierte Docker-Image für unsere Nodejs-Anwendung wurde erstellt, und der Hakase-App-Docker-Dienst ist einsatzbereit.

Schritt 5 – Prüfung

Verfügbares Docker-Bild auf dem Server anzeigen.

docker-compose images
docker images

Verfügbares Docker-Bild anzeigen

Es wurde ein neues benutzerdefiniertes Docker-Image für unsere Nodejs-Anwendung erstellt.

Zeigen Sie den laufenden Dockerdienst an.

docker-compose ps
docker ps

Den laufenden Dockerdienst anzeigen

Die Nodejs-Anwendung ist auf dem Host-Port 3000 installiert und läuft.

Öffnen Sie den Webbrowser und geben Sie die IP-Adresse des Servers mit dem Port ein.

http://10.0.15.2:3000/

Und Sie erhalten die einfache Express-Seite.

Seite funktioniert

Die Anwendung Dockerizing Nodejs Express auf Ubuntu 18.04 wurde erfolgreich abgeschlossen.

Referenz

Das könnte Dich auch interessieren …