Alexander Bier

  • Journey
  • CV
  • Portfolio
  • Blog

Alexander Bier

  • Journey
  • CV
  • Portfolio
  • Blog

Docker für Einsteiger

Alexander
3. Februar 2025
Softwareentwicklung

Docker hat sich als eines der mächtigsten Tools für die Containerisierung von Anwendungen etabliert. In diesem Beitrag werde ich dir nicht nur erklären, wie Docker funktioniert, sondern auch Schritt für Schritt zeigen, wie du dein erstes Projekt mit Docker zum Laufen bringst.

Was ist Docker und wie funktioniert es?

Docker ermöglicht es dir, Anwendungen in Containern zu isolieren und zu verpacken. Container sind wie kleine „Paketboxen“, die alles enthalten, was die Anwendung braucht, um zu laufen: den Code, die Bibliotheken, Abhängigkeiten und das Systemumfeld. Container laufen auf einem gemeinsamen Betriebssystem-Kernel, aber sind dennoch isoliert voneinander und vom Host-Betriebssystem. Das bedeutet, sie sind schnell und ressourcenschonend.

Im Vergleich zu virtuellen Maschinen (VMs) teilen sich Container die Betriebssystem-Ressourcen und sind dadurch viel effizienter. Docker verwendet dabei eine Engine, die Container startet, verwaltet und mit anderen Systemen interagiert.

Die wichtigsten Docker-Konzepte

Bevor wir in dein erstes Docker-Projekt einsteigen, hier eine kurze Erklärung der wichtigsten Konzepte:

  • Docker-Image: Ein schreibgeschütztes Template, das alle Anweisungen enthält, um einen Container zu starten. Es ist wie eine Blaupause für einen Container.
  • Docker-Container: Eine laufende Instanz eines Docker-Images. Ein Container ist die eigentliche Umgebung, in der deine Anwendung läuft.
  • Dockerfile: Eine Textdatei, die Anweisungen enthält, wie ein Docker-Image aufgebaut werden soll.
  • Docker Daemon: Ein Hintergrundprozess, der Docker-Befehle verarbeitet und Container sowie Images verwaltet.

Dein erstes Docker-Projekt

Nun, da du ein grundlegendes Verständnis von Docker hast, gehen wir durch die Schritte, um dein erstes Projekt zum Laufen zu bringen. In diesem Beispiel werden wir eine einfache „Hello World“-Webanwendung mit Node.js erstellen und diese in einem Docker-Container ausführen.

Schritt 1: Erstelle dein Projekt

Zuerst musst du ein Verzeichnis für dein Projekt erstellen. Öffne das Terminal und führe die folgenden Befehle aus:


mkdir mein-projekt
cd mein-projekt

Erstelle dann eine einfache Node.js-Anwendung. Erstelle eine Datei namens app.js:

const http = require('http');<br>const port = 8080;<br><br>const requestHandler = (req, res) => {<br>  res.end('Hallo, Docker!');<br>};<br><br>const server = http.createServer(requestHandler);<br><br>server.listen(port, () => {<br>  <em>console</em>.log(`Server läuft auf Port ${port}`);<br>});

Erstelle auch eine package.json-Datei, um die Abhängigkeiten zu definieren:









<code>{
  "name": "mein-docker-projekt",
  "version": "1.0.0",
  "main": "app.js",
  "dependencies": {
    "http": "0.0.1"
  }
}
Schritt 2: Erstelle ein Dockerfile

Das Dockerfile beschreibt, wie Docker das Image für deine Anwendung erstellen soll. Erstelle im gleichen Verzeichnis eine Datei namens Dockerfile:



















<code># Basis-Image: Verwende ein offizielles Node.js-Image
FROM node:14

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

# Kopiere die package.json und installiere die Abhängigkeiten
COPY package*.json ./
RUN npm install

# Kopiere den restlichen Code in das Arbeitsverzeichnis
COPY . .

# Exponiere den Port, auf dem die Anwendung läuft
EXPOSE 8080

# Starte die Anwendung
CMD ["node", "app.js"]
Schritt 3: Baue das Docker-Image

Jetzt baust du dein Docker-Image. Stelle sicher, dass du dich im richtigen Verzeichnis (wo sich das Dockerfile und deine App befinden) befindest. Führe diesen Befehl aus:


<code>docker build -t mein-docker-projekt .
  • -t mein-docker-projekt: Gibt dem Image einen Namen (hier mein-docker-projekt).
  • .: Das aktuelle Verzeichnis, das Docker verwendet, um das Image zu bauen.

Docker wird nun das Image erstellen, indem es das Dockerfile liest und die darin beschriebenen Anweisungen ausführt.

Schritt 4: Starte den Container

Sobald das Image gebaut ist, kannst du einen Container starten:


<code>docker run -p 8080:8080 mein-docker-projekt
  • -p 8080:8080: Verbindet den Port 8080 des Containers mit dem Port 8080 deines Hosts, sodass du über http://localhost:8080 auf die Anwendung zugreifen kannst.
  • mein-docker-projekt: Der Name des Docker-Images, das du gerade gebaut hast.

Wenn alles gut läuft, solltest du in der Konsole eine Nachricht sehen wie:


<code>Server läuft auf Port 8080

Jetzt kannst du im Browser http://localhost:8080 aufrufen und die Nachricht „Hallo, Docker!“ sehen!

Schritt 5: Container verwalten
  • Container stoppen: Wenn du den Container stoppen möchtest, kannst du das mit folgendem Befehl tun:bashKopierenBearbeitendocker ps Dieser Befehl zeigt alle laufenden Container. Suche den Container mit der entsprechenden ID und stoppe ihn dann:bashKopierenBearbeitendocker stop [container-id]
  • Container löschen: Wenn du den Container dauerhaft entfernen möchtest, kannst du diesen Befehl verwenden:bashKopierenBearbeitendocker rm [container-id]
  • Image löschen: Falls du das Image nicht mehr benötigst, kannst du es mit diesem Befehl löschen:bashKopierenBearbeitendocker rmi mein-docker-projekt
Schritt 6: Docker-Container und Volumes

Falls du Daten speichern musst, die nicht verloren gehen sollen, wenn der Container gelöscht wird, kannst du Volumes verwenden. Hier ein einfaches Beispiel, wie du ein Volume erstellst:


<code>docker run -v mein-volume:/usr/src/app/data mein-docker-projekt

Dies würde ein Volume namens mein-volume erstellen und den Container so konfigurieren, dass er auf dieses Volume zugreift, um Daten zu speichern.

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

  • Willkommen auf meinem Blog!

    Willkommen auf meinem Blog!

    Allgemein
  • Docker für Einsteiger

    Docker für Einsteiger

    Softwareentwicklung
  • Vue 3: Composition API vs. Options API

    Vue 3: Composition API vs. Options API

    Webentwicklung
  • Der Cost-Average-Effekt

    Der Cost-Average-Effekt

    Begriffe, Finanzen
  • The Big Five for Life

    The Big Five for Life

    Inspiration
  • Das Wasserfallmodell

    Das Wasserfallmodell

    Projektmanagement

Agile Aktien Barrierefreiheit Buchvorstellung Bücher Cost-Average-Effekt DFS Die Siedler online Digitalisierung Digitalisierungstrategie Docker Einstieg Entscheidungsfindung Erklärung ETF Finanzen Gaming GCS GENVELO Go Index Indizes Kanban Kassensystem Kosten-Nutzen-Analyse Messe MFN Berlin Museum für Naturkunde Persönliche Weiterentwicklung Portfolio Projektmanagement Prozessautomatisierung Scrum Softwareentwicklung Spreads SWOT-Analyse Szenarioanalyse Toto Guillaume Volksbank vue Wasserfallmodell ZDE Zweck der Existenz

© 2023

Alexander Bier

  • Startseite
  • Datenschutz
  • Impressum
Zustimmung verwalten
Um dir ein optimales Erlebnis zu bieten, verwenden wir Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wenn du diesen Technologien zustimmst, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn du deine Zustimmung nicht erteilst oder zurückziehst, können bestimmte Merkmale und Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen ansehen
{title} {title} {title}