GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Docker-Anleitung:Dockerisieren der Nodejs Express-Anwendung unter Ubuntu 18.04

Docker ist ein Open-Source-Projekt, das Entwicklern und Systemadministratoren eine offene Plattform bietet, um Anwendungen überall als leichtgewichtigen Container zu erstellen, zu verpacken und auszuführen. Docker automatisiert die Bereitstellung von Anwendungen in Softwarecontainern.

Nodejs ist eine Open-Source-JavaScript-Laufzeitumgebung. Es ist eine plattformübergreifende Laufzeitumgebung, die unter Linux, Windows, MacOS, FreeBSD usw. installiert werden kann. Nodejs ist sehr nützlich, um sowohl Server- als auch Desktop-Anwendungen zu erstellen.

In diesem Tutorial zeige ich Ihnen, wie Sie ein Docker-Image für ein vorhandenes Nodejs Express-Anwendungsprojekt in Ubuntu 18.04 erstellen. Wir werden lernen, wie man eine Nodejs-Anwendung andockt und die Anwendung dann als Container in der Docker-Umgebung mithilfe eines docker-compose-Skripts bereitstellt.

Voraussetzungen

  • Ubuntu 18.04
  • Root-Rechte

Was wir tun werden

  1. Installieren Sie Docker CE
  2. Installieren Sie Docker-Compose
  3. Nodejs Express-Projekt einrichten
  4. Erstellen Sie das Projekt
  5. Testen

Schritt 1 – Docker CE installieren

In diesem Tutorial installieren wir die Docker-ce Community Edition aus dem Docker-Repository. Wir werden Docker-ce Community Edition und Docker-Compose installieren, die Version 3 der Compose-Datei unterstützen.

Installieren Sie vor der Installation von Docker-ce die erforderlichen Docker-Abhängigkeiten mit dem Befehl apt.

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

Fügen Sie nun den Docker-Schlüssel und das Repository hinzu, indem Sie die folgenden 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"

Installieren Sie das Paket docker-ce.

sudo apt install docker-ce

Nachdem die Installation abgeschlossen ist, starten Sie den Docker-Dienst und aktivieren Sie ihn so, dass er jedes Mal beim Systemstart gestartet wird.

systemctl start docker
systemctl enable docker

Als Nächstes erteilen wir den normalen Benutzern Berechtigungen zum Ausführen und Verwalten des Docker-Containers.

Fügen Sie einen neuen Benutzer namens „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 Benutzer „mohammad“ an und führen Sie den Docker-Container hello-world.

aus
su - mohammad
docker run hello-world

Und Sie erhalten das unten gezeigte Ergebnis.

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 Compose v3 unterstützt.

Laden Sie die neueste Version 1.22.0 von docker-compose mit dem Befehl curl 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 Docker-Compose-Befehl unten ausführen.

docker-compose version

Nachfolgend das Ergebnis.

Schritt 3 – Nodejs Express-Projekt einrichten

In diesem Abschnitt konfigurieren wir die Nodejs-Anwendungsumgebung. Wir werden eine einfache nodejs-Anwendung verwenden, die mit dem 'Express-Generator' generiert werden kann.

Melden Sie sich beim Benutzer „mohammad“ an.

su - mohammad

Erstellen Sie ein neues Verzeichnis mit dem Namen „Projekt“ und gehen Sie dorthin.

mkdir -p project
cd project

Generieren Sie jetzt eine einfache Hello-Word-Nodejs-Anwendung mit dem unten stehenden 'express'-Befehl.

express hakase-app

Hinweis:

Stellen Sie sicher, dass nodejs, npm und die 'Express-Generator'-Pakete auf dem System installiert wurden.

Und Sie erhalten die einfache nodejs-Express-App im Verzeichnis „hakase-app“.

Als Nächstes erstellen wir unser benutzerdefiniertes Docker-Image für die Nodejs-Anwendung „hakase-app“.

Erstellen Sie im Verzeichnis „Projekt“ mit vim ein neues „Dockerfile“.

vim Dockerfile

Fügen Sie dort die folgende Docker-Image-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.

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

  • Das benutzerdefinierte Image basiert auf der alpinen Version des offiziellen nodejs-Image 8.11.4.
  • Wir erstellen ein neues Verzeichnis für unser Projekt '/src'.
  • Installieren Sie den 'Express-Generator' für das benutzerdefinierte Image.
  • Fügen Sie die Datei „package.json“, die das Anwendungsprofil und die benötigten Pakete enthält, zum Verzeichnis „/src“ hinzu.
  • Installieren Sie alle für das Projekt erforderlichen nodejs-Pakete basierend auf der Datei „package.json“.
  • Exportieren Sie den Port 3000 mit dem Standard-Exec-Startbefehl „node hakase-app/bin/www“.

Als Nächstes erstellen wir das benutzerdefinierte Image basierend auf dem docker-compose-Skript.

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.

Wir erstellen einen neuen Docker-Dienst mit dem Namen „hakase-app“, und gleichzeitig erstellen wir das benutzerdefinierte Docker-Image basierend auf der „Dockerfile“ im Projektverzeichnis und werden automatisch die Hakase-App-Anwendungsdateien bereitstellen.

Die Einrichtung von Nodejs Express ist abgeschlossen.

Schritt 4 – Projekt erstellen und ausführen

Melden Sie sich als 'mohammad'-Benutzer an und gehen Sie zum 'project'-Verzeichnis

su - mohammad
cd project/

Erstellen Sie das Image und erstellen Sie die hakase-app des Docker-Dienstes mit dem Befehl docker-compose unten.

docker-compose build

Jetzt erhalten Sie das unten gezeigte Ergebnis.

Führen Sie nach Abschluss den Docker-Dienst „hakase-app“ aus.

docker-compose up -d

Nachfolgend das Ergebnis.

Das benutzerdefinierte Docker-Image für unsere Nodejs-Anwendung wurde erstellt, und der Docker-Dienst hakase-app ist betriebsbereit.

Schritt 5 – Testen

Verfügbares Docker-Image auf dem Server anzeigen.

docker-compose images
docker images

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

Zeigen Sie den laufenden Docker-Dienst an.

docker-compose ps
docker ps

Die Nodejs-App läuft auf dem Host-Port 3000.

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

http://10.0.15.2:3000/

Und Sie erhalten die einfache Express-Seite.

Die Dockerisierung der Nodejs Express-Anwendung auf Ubuntu 18.04 wurde erfolgreich abgeschlossen.


Ubuntu
  1. Installieren Sie PostgreSQL unter Ubuntu:Eine leicht verständliche Anleitung

  2. So installieren Sie die Docker-Engine unter Ubuntu:Eine Schritt-für-Schritt-Anleitung

  3. So installieren Sie Docker unter Ubuntu 16.04

  4. So installieren Sie Docker unter Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

  5. Installieren Sie qt auf Ubuntu 20.04 - Schritt-für-Schritt-Anleitung?

So installieren Sie Docker unter Ubuntu 20.04

So installieren Sie Docker unter Ubuntu 22.04 / 20.04 LTS

Docker-Leitfaden:Dockerisieren der Python-Django-Anwendung

So installieren Sie Docker unter Ubuntu 20.04, 18.04, 21.04

So installieren Sie Docker unter Ubuntu 14.04

Docker auf Ubuntu installieren – Eine Schritt-für-Schritt-Anleitung