So erstellen Sie einen Docker-Container für eine effiziente Anwendungsbereitstellung

So erstellen Sie einen Docker-Container für eine effiziente Anwendungsbereitstellung

Mit Docker-Containern können Sie Anwendungen in unterschiedlichen Umgebungen effizient bereitstellen und verwalten. Lesen Sie weiter, um zu erfahren, wie Sie einen Docker-Container erstellen und Ihre Entwicklungs- sowie Bereitstellungsprozesse optimieren.

Einen Docker-Container zu erstellen ist unkompliziert:

  1. Ein Docker-Image herunterladen. Ein Image ist eine Vorlage, die den gesamten erforderlichen Code sowie alle Bibliotheken und Abhängigkeiten enthält. Sie können Images aus öffentlichen Registries wie Docker Hub herunterladen.
  2. Ein Dockerfile erstellen. Wenn Sie ein benutzerdefiniertes Image benötigen, erstellen Sie ein Dockerfile – eine einfache Textdatei mit Anweisungen dazu, wie Docker das Image erstellen soll.
  3. Den Container erstellen. Mithilfe des Images führen Sie einen Befehl aus, um eine laufende Instanz des Containers zu starten.
  4. Container verwalten. Sobald der Container ausgeführt wird, können Sie seinen Lebenszyklus mit Befehlen zum Starten, Stoppen und Überwachen verwalten.

Was ist ein Docker-Container?

Ein Docker-Container ist ein leichtgewichtiges, eigenständiges Softwarepaket, das alles enthält, was zum Ausführen einer Anwendung erforderlich ist: Code, Bibliotheken, Abhängigkeiten und Laufzeitumgebung.

So wie ein physischer Container von einem Schiff auf einen Zug und dann auf einen Lkw umgeladen werden kann, ohne dass sich sein Inhalt verändert, können Sie mit einem Docker-Container eine App vom Laptop eines Entwicklers in eine Testumgebung und anschließend in die Produktion verschieben, ohne etwas daran zu ändern.

Damit lösen Sie das klassische Problem „Bei mir funktioniert es“.

Sie können zum Beispiel einen MySQL-Container ausführen, um eine portable Datenbank bereitzustellen, oder einen Node.js-Container für Web-Apps.

Container basieren auf Docker-Images, die als Vorlage dienen. Jedes Mal, wenn Sie ein Image ausführen, erstellt Docker eine neue Container-Instanz.

Voraussetzungen

Bevor Sie mit dem Erstellen von Containern beginnen, stellen Sie sicher, dass Sie Folgendes haben:

  • Ein Server oder ein lokaler Rechner. In dieser Anleitung wird ein Ubuntu 24.04 Server verwendet, aber die Befehle funktionieren auf den meisten modernen Linux-Distributionen.
  • Docker ist installiert. Stellen Sie sicher, dass es auf Ihrem System läuft. Wenn Sie Hilfe benötigen, folgen Sie unserer Anleitung zum Installieren von Docker unter Ubuntu.
  • Grundkenntnisse der Befehlszeile. Grundkenntnisse im Navigieren durch Verzeichnisse und im Ausführen einfacher Docker-Befehle sind hilfreich.

Für Kunden von Hostingers Docker-VPS werden Docker und alle dafür erforderlichen Komponenten bei der Einrichtung Ihres Servers automatisch installiert.

Wenn Sie einen unserer regulären VPS-Tarife nutzen, müssen Sie sich keine Sorgen machen. Mit nur wenigen Klicks richten Sie Docker selbst ein:

  1. Melden Sie sich mit Ihrem Hostinger-Konto bei hPanel an und wechseln Sie dann zu VPSVerwalten.
  2. Wählen Sie in der linken Seitenleiste Ihres VPS-Dashboards Betriebssystem und PanelBetriebssystem aus.
  3. Scrollen Sie nach unten zum Abschnitt Betriebssystem ändern, geben Sie Docker in das Suchfeld ein und wählen Sie den Eintrag aus.
  4. Folgen Sie den Anweisungen auf dem Bildschirm und warten Sie etwa fünf Minuten, bis der Vorgang abgeschlossen ist.

So erstellen Sie einen Docker-Container

Das Erstellen eines Docker-Containers umfasst vier Hauptschritte. Im Folgenden behandeln wir alles – vom Herunterladen eines Basis-Images bis zum Starten und Verwalten Ihres neuen Containers.

1. Docker-Image erstellen

Ein Docker-Image ist die Blaupause für Ihren Container und enthält die erforderlichen Dateien und Anweisungen, um Ihre App auszuführen. Sie können Images von Grund auf selbst erstellen, aber deutlich schneller geht es mit offiziellen, vorgefertigten Images auf Docker Hub.

  1. Erstellen Sie ein Verzeichnis für Ihre App und wechseln Sie dann dorthin:
mkdir myapp && cd myapp
  1. Rufen Sie mit dem Befehl `docker pull` gefolgt vom Image-Namen ein Image von Docker Hub auf Ihr lokales System ab:
docker pull image_name

Zum Beispiel, um das neueste MySQL-Image zu erhalten:

docker pull mysql
  1. Sobald der Download abgeschlossen ist, listen Sie alle Images auf Ihrem System auf, um zu prüfen, ob das Image vorhanden ist:
docker images

2. Dockerfile schreiben

Wenn ein vorgefertigtes Image Ihren Anforderungen nicht entspricht, können Sie mit einer Dockerfile ein benutzerdefiniertes Image erstellen. Dies ist ein Textdokument, das alle Befehle enthält, die zum Erstellen eines Bildes erforderlich sind.

Wichtig! Dieser Schritt ist nur für benutzerdefinierte Apps erforderlich. Wenn Sie direkt ein vorgefertigtes Image wie MySQL verwenden, fahren Sie mit dem nächsten Schritt fort.

  1. Erstellen Sie eine Dockerfile mit dem nano-Texteditor:
nano Dockerfile
  1. Fügen Sie den folgenden Beispielinhalt für die Dockerfile in die Datei ein. Dadurch wird ein einfacher HTTP-Server in Python erstellt.
# Verwenden Sie das offizielle Python-Image von Docker Hub
FROM python:3.8-slim

# Legen Sie das Arbeitsverzeichnis im Container fest
WORKDIR /app

# Installieren Sie curl (nur als Beispiel für die Verwendung von RUN)
RUN apt-get update && apt-get install -y curl

# Geben Sie den Port frei, auf dem der HTTP-Server ausgeführt wird
EXPOSE 8000

# Starten Sie einen einfachen HTTP-Server, wenn der Container ausgeführt wird
CMD ["python", "-m", "http.server", "8000"]
Beispiel für den Inhalt einer Dockerfile

Hier ist eine kurze Übersicht über die wichtigsten Befehle:

  • FROM. Gibt das Basis-Image an, auf dem der Build aufsetzt.
  • RUN. Führt während des Build-Prozesses einen Befehl aus, etwa um Software zu installieren.
  • CMD. Legt den Standardbefehl für einen ausgeführten Container fest.
  1. Sobald Sie fertig sind, speichern Sie die Datei und beenden nano, indem Sie Strg + X → Y → Eingabetaste drücken.

3. Docker-Container erstellen

Jetzt ist es an der Zeit, den Container zu erstellen. Sie verwenden zwei zentrale Befehle: docker build, um aus einem Dockerfile ein Image zu erstellen, und docker run, um aus einem Image einen Container zu erstellen und zu starten.

  1. Wenn Sie eine Dockerfile erstellt haben, führen Sie docker build mit dem Flag -t aus, um das Image mit einem Namen zu versehen. Zum Beispiel:
docker build -t my-python-server .
  1. Sobald Ihr Image bereit ist – unabhängig davon, ob Sie es erstellt oder heruntergeladen haben – erstellen Sie den Container mit docker run. So starten Sie einen Container mit Ihrem benutzerdefinierten Python-Image:
docker run --name my-python-container -d -p 8000:8000 my-python-server

Wenn Sie das MySQL-Image ausführen möchten, das Sie zuvor heruntergeladen haben, verwenden Sie:

docker run --name my-mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-password -d mysql

Bei beiden Befehlen weist –name einen benutzerdefinierten Namen für eine einfachere Verwaltung zu, und -d führt den Container im Detached-Modus aus (im Hintergrund).

4. Container ausführen und verwalten

Sobald Ihr Container läuft, können Sie ihn mit mehreren nützlichen Befehlen verwalten.

  • Laufende Container auflisten:
docker ps
  • Container-Protokolle zur Fehlerbehebung anzeigen:
docker logs my-mysql-container
  • Einen Container stoppen:
docker stop my-mysql-container
  • Ressourcennutzung in Echtzeit prüfen:
docker stats

Für die erweiterte Container-Verwaltung verwenden Sie den Befehl docker exec. Damit können Sie einen Befehl in einem bereits laufenden Container ausführen, ohne dessen Betrieb zu unterbrechen.

Warum Docker-Container verwenden

Docker-Container bieten Entwicklern und Unternehmen erheliche Vorteile, da sie die Entwicklung, Bereitstellung und Ausführung von Anwendungen effizienter machen. Hier sind die wichtigsten Vorteile:

  • Übertragbarkeit. Container bündeln eine Anwendung mit ihren Abhängigkeiten, sodass sie in jeder Umgebung konsistent ausgeführt wird – vom lokalen Rechner bis zur Cloud.
  • Kosteneffizienz. Container nutzen gemeinsam den Kernel des Hostsystems und sind dadurch deutlich schlanker als herkömmliche virtuelle Maschinen (VMs). Dadurch können Sie auf einem einzelnen Server mehr Container ausführen und die verfügbaren Ressourcen effizienter nutzen.
  • Skalierbarkeit. Sie können schnell mehrere Instanzen eines Containers erstellen, um eine höhere Last zu bewältigen, und Anwendungen bei Bedarf problemlos hoch- oder herunterskalieren.
  • Geschwindigkeit. Docker-Container lassen sich innerhalb weniger Sekunden erstellen und beschleunigen dadurch Entwicklungs-, Test- und Bereitstellungszyklen.
  • Isolation. Jeder Container läuft in einer isolierten Umgebung, wodurch Konflikte zwischen Anwendungen und ihren Abhängigkeiten vermieden werden.

Was sind bewährte Verfahren für Docker-Container?

Wenn Sie bewährte Methoden befolgen, sind Ihre Docker-Container effizient, sicher und leicht zu verwalten. Diese sind besonders nützlich in Szenarien wie dem Hosting von Websites und der Bereitstellung von Apps.

  • Halten Sie Bilder möglichst schlank. Verwenden Sie zunächst ein minimales Basis-Image wie alpine. Kombinieren Sie in Ihrer Dockerfile RUN-Befehle und entfernen Sie temporäre Dateien in derselben Ebene, um die Image-Größe zu minimieren. Zum Beispiel:
RUN apt-get update && apt-get install -y python3 && rm -rf /var/lib/apt/lists/*
  • Verwenden Sie offizielle Bilder. Verwenden Sie nach Möglichkeit offizielle Images aus Docker Hub. Sie werden regelmäßig aktualisiert, auf Sicherheitslücken geprüft und für eine optimale Leistung optimiert.
  • Führen Sie Container als Nicht-Root-Benutzer aus. Standardmäßig werden Container mit Root-Rechten ausgeführt, was ein Sicherheitsrisiko darstellt. Erstellen Sie in Ihrer Dockerfile einen eigenen Benutzer und verwenden Sie die Anweisung USER, damit die App mit geringeren Berechtigungen ausgeführt wird.
  • Schützen Sie sensible Informationen. Vermeiden Sie, sensible Daten wie API-Schlüssel direkt in Ihrer Dockerfile fest zu hinterlegen. Verwenden Sie Umgebungsvariablen (Flag -e) oder Docker-Secrets, um sensible Informationen sicher zu verwalten.
  • Container-Ressourcen begrenzen. Verhindern Sie, dass ein einzelner Container sämtliche Ressourcen des Hosts beansprucht, indem Sie beim Ausführen CPU- und Arbeitsspeicherlimits festlegen:
docker run --cpus=0.5 --memory=500m image-name

Nächste Schritte für die Arbeit mit Docker-Containern

Wir haben behandelt, wie Sie Docker-Container erstellen, verwalten und optimieren, um konsistentere, portablere und effizientere Anwendungen zu entwickeln. Diese Grundlage vereinfacht den Entwicklungszyklus und macht die Softwarebereitstellung zuverlässiger.

Wenn Sie mit mehreren Containern für eine einzelne Anwendung arbeiten, sollten Sie sich mit Container-Orchestrierung befassen. Tools wie Docker Swarm und Kubernetes automatisieren die Bereitstellung, Skalierung und Verwaltung containerisierter Anwendungen.

Docker Swarm lässt sich einfach einrichten und ist eng in Docker integriert. Dadurch eignet sich die Lösung besonders für kleine bis mittelgroße Cluster. Kubernetes bietet dagegen mehr Flexibilität und umfangreichere Funktionen und ist damit ideal für große, produktionsreife Bereitstellungen mit erweiterten Planungs- und Selbstheilungsfunktionen.

Nutzen Sie Docker Swarm für eine schlanke und einfach zu verwaltende Lösung oder Kubernetes, wenn Sie maximale Flexibilität und Skalierbarkeit benötigen.

Alle Tutorial-Inhalte auf dieser Website unterliegen Hostingers strengen redaktionellen Standards und Normen.

Author
Erstellt von

Faradilla Ayunindya

Faradilla, auch bekannt als Ninda, ist Content Marketing Specialist bei Hostinger mit über fünf Jahren Erfahrung und einem zehnjährigen Hintergrund als Linguistin. Sie möchte Technologie für alle zugänglich machen, indem sie komplexe Anleitungen in klare und leicht verständliche Schritt-für-Schritt-Guides verwandelt. In ihrer Freizeit interessiert sie sich für Biowissenschaften oder schaut gerne lustige Tiervideos. Vernetzen Sie sich mit ihr auf LinkedIn.

Was unsere Kunden sagen

Kommentar schreiben

Please fill the required fields.Bitte akzeptieren Sie die Datenschutzklausel.Bitte füllen Sie die erforderlichen Felder aus und akzeptieren Sie die Datenschutzklausel.

Thank you! Your comment has been successfully submitted. It will be approved within the next 24 hours.