Docker - Einstellen von Node.js: Ein Anfängerleitfaden

Hallo da draußen, angehende Entwickler! Heute machen wir uns auf eine aufregende Reise in die Welt von Docker und Node.js. Als dein freundlicher Nachbarschafts-Computerlehrer bin ich hier, um dich Schritt für Schritt durch dieses Abenteuer zu führen. Keine Sorge, wenn du neu im Programmieren bist – wir beginnen mit den ganz Basics und arbeiten uns hoch. Also, hole dir eine Tasse Kaffee (oder Tee, wenn das dein Ding ist) und tauchen wir ein!

Docker - Setting Node.js

Was ist Docker?

Bevor wir ins Detail gehen, lassen Sie uns über Docker sprechen. Stell dir vor, du ziehst in ein neues Haus. Anstatt alles in Kisten verschiedener Formen und Größen zu packen, was wäre, wenn du all deine Habseligkeiten in standardisierte Behälter packen könntest, die auf jedem Lkw oder Schiff perfekt passen? Das ist im Wesentlichen, was Docker für Software macht!

Docker ist eine Plattform, die es dir ermöglicht, deine Anwendung und alle ihre Abhängigkeiten in eine standardisierte Einheit namens Container zu packen. Diese Container können konsistent auf jedem System ausgeführt werden, was es einfacher macht, Anwendungen zu entwickeln, zu versenden und auszuführen.

Warum Docker mit Node.js verwenden?

Nun fragst du dich vielleicht, "Warum sollte ich mir die Mühe mit Docker für meine Node.js-Anwendung machen?" Lass mich dir eine kleine Geschichte erzählen.

Es war einmal eine Entwicklerin namens Sarah. Sie baute eine großartige Node.js-App auf ihrem Laptop. Es funktionierte perfekt! Aber als sie versuchte, es auf dem Server ihres Teams auszuführen, krachte es. Das Problem? Verschiedene Versionen von Node.js und einige fehlende Abhängigkeiten. Sarah verbrachte Tage damit, es zu beheben.

Wenn Sarah Docker verwendet hätte, hätte sie diesen Kopfschmerz vermeiden können. Docker stellt sicher, dass deine Anwendung überall im selben Umfeld läuft – sei es auf deinem Laptop, dem Desktop deines Kollegen oder einem Server in der Cloud.

Docker für Node.js einrichten

Gut, lassen Sie uns die Ärmel hochwerren und mit ein wenig eigentlicher Einrichtung herumwurschteln!

Schritt 1: Docker installieren

Zuerst müssen wir Docker auf unserem Computer installieren. Gehe zur Docker-Website und lade Docker Desktop für dein Betriebssystem herunter. Folge den Installationsanweisungen, und du bist bereit zu gehen!

Schritt 2: Eine Node.js-Anwendung erstellen

Lassen Sie uns eine einfache Node.js-Anwendung containerisieren. Erstelle ein neues Verzeichnis für dein Projekt und navigiere hinein:

mkdir my-node-app
cd my-node-app

Jetzt erstellen wir eine einfache package.json-Datei:

npm init -y

Dieser Befehl erstellt eine grundlegende package.json-Datei mit Standardwerten. Als nächstes installieren wir Express, ein beliebtes Node.js-Framework:

npm install express

Jetzt erstellen wir eine Datei namens app.js und fügen den folgenden Code hinzu:

const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
res.send('Hello, Docker!');
});

app.listen(port, () => {
console.log(`App hört auf http://localhost:${port}`);
});

Diese einfache Anwendung erstellt einen Webserver, der "Hello, Docker!" zurückgibt, wenn du die Root-URL besuchst.

Schritt 3: Eine Dockerfile erstellen

Nun kommt der spannende Teil – die Erstellung unserer Dockerfile! Eine Dockerfile ist wie ein Rezept, das Docker anweist, wie unser Container gebaut werden soll. Erstelle eine Datei namens Dockerfile (ohne Erweiterung) in deinem Projektverzeichnis und füge folgendes hinzu:

# Verwende ein offizielles Node-JS-Laufzeitbild als Elternbild
FROM node:14

# Setze das Arbeitsverzeichnis im Container
WORKDIR /usr/src/app

# Kopiere package.json und package-lock.json
COPY package*.json ./

# Installiere Abhängigkeiten
RUN npm install

# Kopiere den Rest des Anwendungscodes
COPY . .

# Mache Port 3000 von außen zugänglich
EXPOSE 3000

# Definiere den Befehl zum Ausführen der App
CMD [ "node", "app.js" ]

Lassen Sie uns das mal auseinandernehmen:

  • FROM node:14: Dies gibt das Basisbild an, das wir verwenden – in diesem Fall Node.js Version 14.
  • WORKDIR /usr/src/app: Dies setzt das Arbeitsverzeichnis innen im Container.
  • COPY package*.json ./: Dies kopiert unsere package.json-Dateien in den Container.
  • RUN npm install: Dies installiert unsere Abhängigkeiten innen im Container.
  • COPY . .: Dies kopiert den Rest unseres Anwendungscodes in den Container.
  • EXPOSE 3000: Dies macht Port 3000 von außen zugänglich.
  • CMD [ "node", "app.js" ]: Dies definiert den Befehl zum Ausführen unserer Anwendung.

Schritt 4: Das Docker-Container erstellen und ausführen

Nun, wo wir unsere Dockerfile haben, bauen wir unsere Docker-Image:

docker build -t my-node-app .

Dieser Befehl baut ein Docker-Image und taggt es als my-node-app. Das . am Ende weist Docker an, die Dockerfile im aktuellen Verzeichnis zu suchen.

Wenn der Build abgeschlossen ist, können wir unseren Container ausführen:

docker run -p 3000:3000 my-node-app

Dieser Befehl führt unseren Container aus und verknüpft Port 3000 im Container mit Port 3000 auf unserem Host-Rechner.

Glückwunsch! Du solltest jetzt in der Lage sein, http://localhost:3000 in deinem Webbrowser zu besuchen und "Hello, Docker!" zu sehen.

Häufige Docker-Befehle

Hier ist eine praktische Tabelle einiger häufiger Docker-Befehle, die du nützlich finden wirst:

Befehl Beschreibung
docker build Ein Docker-Image aus einer Dockerfile erstellen
docker run Ein Docker-Container ausführen
docker ps Laufende Container auflisten
docker stop Einen laufenden Container stoppen
docker rm einen Container entfernen
docker images Docker-Images auflisten
docker rmi Ein Docker-Image entfernen
docker logs Protokolle für einen Container anzeigen

Fazit

Und da hast du es, Leute! Wir haben erfolgreich eine Node.js-Anwendung mit Docker eingerichtet. Wir haben gelernt, was Docker ist, warum es nützlich ist, und wie man ein Docker-Container für eine Node.js-App erstellt und ausführt.

Denke daran, wie bei jeder neuen Fähigkeit, die Beherrschung von Docker erfordert Übung. Lass dich nicht entmutigen, wenn Dinge beim ersten Mal nicht perfekt funktionieren. Halte experimentierfreudig, und bevor du es weißt, wirst du Anwendungen wie ein Profi containerisieren!

Beim Abschied möchte ich dir ein kleines Geheimnis verraten. Als ich zum ersten Mal mit Docker begann, habe ich versehentlich docker run anstelle von docker build eingegeben und eine Stunde lang darüber nachgedacht, warum meine Änderungen nicht angezeigt wurden. Wir alle machen Fehler – das ist, wie wir lernen!

Weiter codieren, weiter lernen und vor allem Spaß dabei haben! Bis zum nächsten Mal, viel Spaß beim Dockerisieren!

Credits: Image by storyset