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 (hiermein-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 überhttp://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:bashKopierenBearbeiten
docker 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:bashKopierenBearbeiten
docker rm [container-id]
- Image löschen: Falls du das Image nicht mehr benötigst, kannst du es mit diesem Befehl löschen:bashKopierenBearbeiten
docker 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