Anmelden
Anmelden

Selenium mit Chrome in Docker ausführen

Selenium mit Chrome in Docker ausführen
Hostman Team
Technischer Redakteur
Docker-Plattform
30.10.2025
Reading time: 6 min

Manchmal ist es hilfreich, Selenium in Python innerhalb eines Docker-Containers zu verwenden. Dabei stellen sich Fragen zu den Vorteilen dieser Methode, zur Versionskompatibilität zwischen ChromeDriver und Chromium sowie zu den technischen Feinheiten der Implementierung. In diesem Artikel werden die wichtigsten Aspekte erklärt und typische Probleme mit ihren Lösungen behandelt.

Warum Selenium in Docker ausführen?

Das Ausführen von Selenium in einem Container bietet mehrere Vorteile:

  • 🧩 Portabilität:
    Die Umgebung kann leicht zwischen verschiedenen Maschinen übertragen werden, ohne Versionskonflikte oder betriebssystemspezifische Abhängigkeiten.

  • 🧱 Isolation:
    Der Selenium-Container kann unabhängig von anderen Komponenten schnell ersetzt oder aktualisiert werden.

  • ⚙️ CI/CD-Kompatibilität:
    Dockerisiertes Selenium lässt sich perfekt in CI/CD-Pipelines integrieren – bei jedem Testlauf kann eine frische, saubere Umgebung bereitgestellt werden.

Vorbereitung eines Ubuntu-Servers für Selenium mit Docker

Zuerst sicherstellen, dass Docker und Docker

Compose installiert sind:

docker --version && docker compose version

Hinweis: In einigen Docker-Compose-Versionen lautet der Befehl docker-compose (mit Bindestrich) anstelle von docker compose.

Wenn die Tools installiert sind, werden ihre Versionen angezeigt. Falls nicht, folge der entsprechenden Installationsanleitung.

Selenium in Docker – Beispielkonfiguration

Beim Ausführen von Selenium in Docker-Containern sollte man die Host-Architektur, Funktionsanforderungen und Performance berücksichtigen.

Die offiziellen Images selenium/standalone-* sind für AMD64 (x86_64)-Prozessoren optimiert, während die seleniarm/standalone-*-Images für ARM-Architekturen (z. B. Apple Silicon, ARM64-Server) gedacht sind.

Erstelle zunächst im Projektstamm eine Datei docker-compose.yml mit folgendem Inhalt:

version: "3"

services:
  app:
    build: .
    restart: always
    volumes:
      - .:/app
    depends_on:
      - selenium
    platform: linux/amd64

  selenium:
    image: selenium/standalone-chromium:latest # For AMD64
#    image: seleniarm/standalone-chromium:latest # For ARM64
    container_name: selenium-container
    restart: unless-stopped
    shm_size: 2g
    ports:
      - "4444:4444"  # Selenium WebDriver API
      - "7900:7900"  # VNC Viewer
    environment:
      - SE_NODE_MAX_SESSIONS=1
      - SE_NODE_OVERRIDE_MAX_SESSIONS=true
      - SE_NODE_SESSION_TIMEOUT=300
      - SE_NODE_GRID_URL=http://localhost:4444
      - SE_NODE_DETECT_DRIVERS=false

Wähle das richtige Image für deine Architektur, indem du die entsprechende Zeile aktivierst.

Der Service app führt deinen Python-Code aus. Definiere dafür eine Dockerfile:

# Use a minimal Python image
FROM python:3.11-slim

# Set working directory
WORKDIR /app

# Install Python dependencies
COPY requirements.txt /app/
RUN pip install --no-cache-dir -r requirements.txt

# Copy project files
COPY . /app/

# Set environment variables (Chromium is in a separate container)
ENV SELENIUM_REMOTE_URL="http://selenium:4444/wd/hub"

# Run Python script
CMD ["python", "main.py"]

Diese Dockerfile verwendet ein leichtes Python-Image und installiert automatisch alle Abhängigkeiten.

Beispielskript – main.py

import time  # Used to create a delay for checking browser functionality
import os

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options

# WebDriver settings
chrome_options = Options()
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")
chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument("--disable-webrtc")
chrome_options.add_argument("--hide-scrollbars")
chrome_options.add_argument("--disable-notifications")
chrome_options.add_argument("--start-maximized")

SELENIUM_REMOTE_URL = os.getenv("SELENIUM_REMOTE_URL", "http://selenium:4444/wd/hub")

driver = webdriver.Remote(
    command_executor=SELENIUM_REMOTE_URL,
    options=chrome_options
)

# Open a test page
driver.get("https://www.hostman.com")

time.sleep(9999)

# Shut down WebDriver
driver.quit()

requirements.txt

attrs==25.1.0
certifi==2025.1.31
h11==0.14.0
idna==3.10
outcome==1.3.0.post0
PySocks==1.7.1
selenium==4.28.1
sniffio==1.3.1
sortedcontainers==2.4.0
trio==0.28.0
trio-websocket==0.11.1
typing_extensions==4.12.2
urllib3==2.3.0
websocket-client==1.8.0
wsproto==1.2.0

Container starten

Starte die Container mit:

docker compose up -d

Docker baut die Images und startet sie im Hintergrund.

Überprüfe den Status:

docker compose ps

Wenn zwei Container laufen, ist alles korrekt eingerichtet – du kannst jetzt mit Selenium auf beliebige Websites zugreifen.

Selenium in Docker debuggen (VNC-Zugriff)

In offiziellen Selenium-Docker-Images (z. B. selenium/standalone-chrome oder seleniarm/standalone-chromium) wird der direkte Zugriff auf das Chrome DevTools Protocol (CDP) von Selenium Grid überschrieben.

Parameter wie --remote-debugging-port=9229 werden ignoriert oder von Selenium neu zugewiesen. Daher ist direkter Zugriff von außen nicht möglich.

Stattdessen bieten diese Images integrierten VNC-Zugriff (Virtual Network Computing) – ähnlich wie TeamViewer oder AnyDesk, aber auf Container-Ebene.

⚠️ VNC funktioniert nur, wenn der Headless-Modus deaktiviert ist, da es den echten Bildschirminhalt überträgt.

Du kannst die VNC-Weboberfläche öffnen unter:

http://<server_ip>:7900

Beim ersten Zugriff wird ein Passwort verlangt. Erstelle es direkt im Container:

docker exec -it selenium-container bash
x11vnc -storepasswd

Gib ein Passwort ein, bestätige es, und verwende es dann auf der VNC-Webseite, um Zugriff auf den laufenden Chrome-Browser im Container zu erhalten. Dort kannst du die Chrome DevTools öffnen und Netzwerkaktivitäten oder DOM-Elemente untersuchen.

Fazit

Das Ausführen von Selenium in Docker-Containern erhöht die Portabilität, beseitigt Versionskonflikte und erleichtert die Integration in CI/CD-Pipelines. Dank der integrierten VNC-Unterstützung kannst du Tests visuell debuggen und bei Bedarf mit grafischer Oberfläche arbeiten.

Achte lediglich darauf:

  • das passende Image (AMD64 oder ARM64) zu verwenden

  • und den Headless-Modus zu deaktivieren, wenn du den Browser sehen möchtest.

So erhältst du eine flexible, stabile und reproduzierbare Testumgebung für automatisierte Browser-Tests mit Selenium und Docker.

Docker-Plattform
30.10.2025
Reading time: 6 min

Ähnlich

Docker-Plattform

Docker auf Ubuntu 22.04 installieren

Docker ist ein kostenloses Open-Source-Tool zur Containerisierung von Anwendungen. Container sind isolierte Umgebungen, die virtuellen Maschinen (VMs) ähneln, jedoch deutlich schlanker sind und plattformübergreifend portabel bleiben, während sie weniger Systemressourcen benötigen. Docker nutzt Virtualisierung auf Betriebssystemebene und greift dabei auf Funktionen zurück, die direkt im Linux-Kernel integriert sind. Reihenfolge der Anwendungen nach der Installation von Docker auf Ubuntu Obwohl die Anleitung auch auf andere Ubuntu-Versionen anwendbar ist, wird in diesem Tutorial erklärt, wie Docker auf Ubuntu 22.04 installiert wird. Zusätzlich laden wir Docker Compose herunter, ein notwendiges Tool zur effektiven Verwaltung mehrerer Container. Für diese Anleitung verwenden wir einen Hostman-Cloud-Server. Wählen Sie jetzt Ihren Server! Systemanforderungen Laut der Docker-Dokumentation werden die folgenden 64-Bit-Versionen von Ubuntu unterstützt: Ubuntu Oracular 24.10 Ubuntu Noble 24.04 (LTS) Ubuntu Jammy 22.04 (LTS) Ubuntu Focal 20.04 (LTS) Docker funktioniert auf den meisten gängigen Architekturen. Die Ressourcenanforderungen Ihres Geräts hängen von Ihrem geplanten Einsatzzweck und davon ab, wie komfortabel Sie mit Docker arbeiten möchten. Der Umfang der Anwendungen, die Sie in Containern bereitstellen wollen, bestimmt maßgeblich die Systemanforderungen. Einige Quellen empfehlen mindestens 2 GB RAM. Zusätzlich ist eine stabile Internetverbindung erforderlich. Docker auf Ubuntu 22.04 installieren Die Installation von Docker auf Ubuntu 22.04 umfasst die Ausführung einer Reihe von Terminalbefehlen. Nachfolgend finden Sie eine Schritt-für-Schritt-Anleitung mit Erläuterungen. Die Schritte sind auch auf Server-Versionen von Ubuntu anwendbar. 1. Paketindizes aktualisieren Das Standard-Repository enthält nicht immer die neuesten Softwareversionen. Daher laden wir Docker aus dem offiziellen Repository herunter, um die aktuellste Version zu erhalten. Aktualisieren Sie zunächst die Paketindizes: sudo apt update 2. Zusätzliche Pakete installieren Um Docker zu installieren, müssen vier zusätzliche Pakete heruntergeladen werden: curl: Erforderlich für die Interaktion mit Webressourcen. software-properties-common: Ermöglicht die Softwareverwaltung über Skripte. ca-certificates: Enthält Informationen über Zertifizierungsstellen. apt-transport-https: Erforderlich für die Datenübertragung über das HTTPS-Protokoll. Laden Sie diese Pakete mit folgendem Befehl herunter: sudo apt install curl software-properties-common ca-certificates apt-transport-https -y Das Flag -y beantwortet alle Terminalabfragen automatisch mit „Ja“. 3. GPG-Schlüssel importieren Softwaresignaturen müssen mithilfe eines GPG-Schlüssels überprüft werden. Das Docker-Repository muss zur lokalen Liste hinzugefügt werden. Verwenden Sie den folgenden Befehl, um den GPG-Schlüssel zu importieren: wget -O- https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor | sudo tee /etc/apt/keyrings/docker.gpg > /dev/null Während des Importvorgangs kann das Terminal eine Warnmeldung anzeigen, bevor die erfolgreiche Ausführung des Befehls bestätigt wird. 4. Docker-Repository hinzufügen Fügen Sie das Repository für Ihre Ubuntu-Version mit dem Codenamen „Jammy“ hinzu. Für andere Versionen verwenden Sie die entsprechenden Codenamen aus dem Abschnitt „Systemanforderungen“. Führen Sie den folgenden Befehl aus: echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null Während der Ausführung fordert das Terminal Sie auf, den Vorgang zu bestätigen. Drücken Sie die Eingabetaste. 5. Paketindizes erneut aktualisieren Nachdem diese Änderungen vorgenommen wurden, aktualisieren Sie die Paketindizes erneut mit dem bekannten Befehl: sudo apt update 6. Repository überprüfen Stellen Sie sicher, dass die Installation aus dem richtigen Repository erfolgt, indem Sie den folgenden Befehl ausführen: apt-cache policy docker-ce Ausgabebeispiel: Abhängig von den neuesten Docker-Versionen kann sich das Ergebnis ändern. Die Überprüfung, dass die Installation aus dem offiziellen Docker-Repository erfolgt, ist entscheidend. 7. Docker installieren Nach der Konfiguration der Repositories fahren Sie mit der Installation von Docker fort: sudo apt install docker-ce -y Der Installationsprozess beginnt sofort. Um eine erfolgreiche Installation zu bestätigen, überprüfen Sie den Docker-Status im System: sudo systemctl status docker Ausgabebeispiel: Die Ausgabe sollte anzeigen, dass der Docker-Dienst aktiv ist und ausgeführt wird. Und wenn Sie nach einer zuverlässigen, leistungsstarken und kostengünstigen Lösung für Ihre Workflows suchen, bietet Hostman Linux-VPS-Hosting-Optionen, darunter Debian VPS, Ubuntu VPS und VPS CentOS. Docker Compose installieren Docker Compose ist ein Docker-Tool zur Verwaltung mehrerer Container. Es wird häufig in Projekten eingesetzt, in denen viele Container als ein einheitliches System zusammenarbeiten müssen. Die manuelle Verwaltung dieses Prozesses kann herausfordernd sein. Stattdessen beschreiben Sie die gesamte Konfiguration in einer einzigen YAML-Datei, die die Einstellungen und Konfigurationen aller Container und ihrer Anwendungen enthält. Es gibt mehrere Möglichkeiten, Docker Compose zu installieren. Wenn Sie die neueste Version benötigen, stellen Sie sicher, dass Sie die manuelle Installation oder die Installation über das Git-Versionskontrollsystem verwenden. Installation über apt-get Wenn die neueste Version für Sie nicht entscheidend ist, kann Docker Compose direkt aus dem Ubuntu-Repository installiert werden. Führen Sie den folgenden Befehl aus: sudo apt-get install docker-compose Installation über Git Installieren Sie zunächst Git: sudo apt-get install git Überprüfen Sie die Installation, indem Sie die Git-Version prüfen: git --version Die Ausgabe sollte die Git-Version anzeigen. Klonen Sie anschließend das Docker-Compose-Repository. Navigieren Sie zur Docker-Compose-GitHub-Seite und kopieren Sie die Repository-URL. Führen Sie den folgenden Befehl aus, um das Repository zu klonen: git clone https://github.com/docker/compose.git Der Klonvorgang beginnt, und das Repository wird von GitHub heruntergeladen. Manuelle Installation Rufen Sie das Docker-Compose-GitHub-Repository auf und suchen Sie unter dem Tag „Latest“ nach der neuesten Release-Version. Zum Zeitpunkt der Erstellung dieses Artikels ist die aktuelle Version von Docker Compose v2.31.0. Laden wir sie herunter: sudo curl -L "https://github.com/docker/compose/releases/download/v2.31.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose In diesem Befehl berücksichtigen die Parameter $(uname -s) und $(uname -m) automatisch die Systemeigenschaften und die Architektur. Nach Abschluss des Downloads ändern Sie die Dateiberechtigungen: sudo chmod +x /usr/local/bin/docker-compose Richtige Reihenfolge Ihrer Infrastruktur nach der Installation von Docker auf Ubuntu Fazit In dieser Anleitung haben wir die Installation von Docker auf Ubuntu 22.04 sowie mehrere Möglichkeiten zur Installation von Docker Compose behandelt. Sie können bei Hostman einen Cloud-Server für Ihre Experimente und Übungen bestellen. Wählen Sie jetzt Ihren Server! Häufig gestellte Fragen (FAQ) Wie installiere ich Docker im Terminal? Der einfachste Weg, die Standard-Ubuntu-Version zu installieren, besteht darin, Folgendes auszuführen: sudo apt update sudo apt install docker.io Hinweis: Für die absolut neueste Version sollten Sie das offizielle Docker-Repository einrichten und stattdessen docker-ce installieren. Wie führe ich Docker ohne sudo aus? Standardmäßig benötigt Docker Root-Rechte. Um Docker als normaler Benutzer auszuführen, fügen Sie Ihren Benutzer der Gruppe „docker“ hinzu: sudo usermod -aG docker $USER Melden Sie sich ab und wieder an, damit die Änderungen wirksam werden. Wie überprüfe ich, ob Docker installiert ist und ausgeführt wird? Führen Sie den „hello-world“-Container aus, um die gesamte Toolchain zu überprüfen: sudo docker run hello-world Bei Erfolg wird ein Test-Image heruntergeladen und eine Willkommensmeldung ausgegeben. Wie installiere ich Docker Compose auf Ubuntu 22.04? In modernen Versionen ist Docker Compose als Plugin enthalten. Installieren Sie es über: sudo apt install docker-compose-plugin Anschließend können Sie es mit docker compose ausführen (achten Sie auf das Leerzeichen, kein Bindestrich). Was ist der Unterschied zwischen docker.io und docker-ce? docker.io: Das von dem Ubuntu-Team gepflegte Docker-Paket. Es ist stabil, kann jedoch etwas älter sein. docker-ce: Das „Community Edition“-Paket, das direkt von Docker, Inc. gepflegt wird. Es enthält die neuesten Funktionen und Patches. Wie deinstalliere ich Docker? Um die Software zu entfernen, aber Ihre Container/Images zu behalten: sudo apt remove docker docker.io containerd runc Um alles einschließlich Images und Volumes zu entfernen, löschen Sie das Verzeichnis: sudo rm -rf /var/lib/docker.
27 January 2026 · 8 min to read
Docker-Plattform

Docker Compose installieren auf Ubuntu: vollständige Anleitung

Docker Compose hat grundlegend verändert, wie Entwickler containerisierte Anwendungen erstellen und betreiben, insbesondere wenn mehrere voneinander abhängige Services koordiniert werden müssen. Dieses Tool ersetzt die manuelle Verwaltung einzelner Container durch einen strukturierten, YAML-basierten Workflow und ermöglicht es Teams, komplette Anwendungsarchitekturen in einer einzigen Konfigurationsdatei zu definieren. Für Ubuntu-Umgebungen bedeutet dies reproduzierbare Deployments, vereinfachtes Skalieren und geringeren Betriebsaufwand. Diese Anleitung bietet eine neue Perspektive auf die Installation und Nutzung von Docker Compose und liefert tiefere Einblicke in die praktische Umsetzung. Voraussetzungen Bevor du mit diesem Tutorial beginnst, stelle sicher, dass Folgendes erfüllt ist: Stelle eine Ubuntu-Cloud-Server-Instanz bei Hostman bereit. Verfüge über ein Benutzerkonto mit sudo-Rechten oder Root-Zugriff, um Pakete zu installieren und Docker zu verwalten. Docker muss installiert sein und auf dem Server laufen, da Docker Compose auf der Docker Engine aufsetzt. Warum Docker Compose wichtig ist Moderne Anwendungen bestehen häufig aus miteinander verbundenen Komponenten wie APIs, Datenbanken und Caching-Schichten. Diese Elemente einzeln mit Docker-Befehlen zu verwalten, wird mit zunehmender Komplexität schnell unübersichtlich. Docker Compose löst dieses Problem, indem alle Services, Netzwerke und Speicheranforderungen in einer docker-compose.yml-Datei definiert werden können. Dieser Ansatz sorgt für Konsistenz über alle Umgebungen hinweg – egal ob lokal auf einer Ubuntu-Maschine oder auf einem Cloud-Server. Ein Beispiel: Eine Webanwendung besteht aus einem Node.js-Backend, einer PostgreSQL-Datenbank und einem Redis-Cache. Ohne Docker Compose müsste jede Komponente mit separaten docker run-Befehlen und präzisen Netzwerkparametern gestartet werden. Mit Compose werden diese Abhängigkeiten einmal definiert und können anschließend mit einem einzigen Befehl gestartet oder beendet werden. Installation von Docker Compose Folge diesen Schritten, um Docker Compose auf deinem Ubuntu-System zu installieren. Schritt 1: Überprüfen, ob Docker installiert und aktiv ist Docker Compose ist eine Erweiterung von Docker. Überprüfe daher zuerst den Status des Docker-Dienstes: sudo systemctl status docker Wenn der Dienst nicht aktiv ist, starte ihn mit: sudo systemctl start docker Schritt 2: Systempakete aktualisieren Aktualisiere die Paketlisten, um Zugriff auf aktuelle Softwareversionen zu haben: sudo apt-get update Schritt 3: Grundlegende Hilfsprogramme installieren Für eine sichere Kommunikation mit den Docker-Repositories werden folgende Pakete benötigt: sudo apt-get install ca-certificates curl Schritt 4: Docker-GPG-Schlüssel konfigurieren Authentifiziere Docker-Pakete, indem du den kryptografischen Schlüssel hinzufügst: sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc Dieser Schritt stellt sicher, dass die Pakete während der Übertragung nicht manipuliert wurden. Schritt 5: Docker-Repository hinzufügen Füge das Docker-Repository passend zu deiner Ubuntu-Version hinzu: echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null Der Befehl erkennt die Ubuntu-Version automatisch über VERSION_CODENAME. Schritt 6: Docker-Compose-Plugin installieren Aktualisiere die Paketlisten und installiere das Compose-Plugin: sudo apt update sudo apt-get install docker-compose-plugin Schritt 7: Installation überprüfen Überprüfe die erfolgreiche Installation mit: docker compose version Beispielausgabe: Docker Compose version v2.33.0 Ein praktisches Docker-Compose-Projekt erstellen Zur Demonstration der Docker-Compose-Funktionen stellen wir einen Webserver mit Nginx bereit. 1. Projektverzeichnis initialisieren Erstelle ein Arbeitsverzeichnis: mkdir ~/compose-demo && cd ~/compose-demo 2. Services in docker-compose.yml definieren Erstelle die Konfigurationsdatei: nano docker-compose.yml Füge folgenden Inhalt ein: services:   web:     image: nginx:alpine     ports:       - "8080:80"     volumes:       - ./app:/usr/share/nginx/html Erklärung: services: Wurzelelement zur Definition der Container web: Benutzerdefinierter Servicename image: Alpine-basiertes Nginx-Image mit geringem Ressourcenverbrauch ports: Zuordnung von Port 8080 (Host) zu Port 80 (Container) volumes: Synchronisiert das lokale app-Verzeichnis mit dem Web-Root des Containers 3. Webinhalt erstellen Lege die HTML-Struktur an: mkdir app nano app/index.html Füge den folgenden HTML-Code ein: <!DOCTYPE html> <html lang="en"> <head>   <meta charset="UTF-8">   <title>Docker Compose Test</title> </head> <body>   <h1>Hello from Docker Compose!</h1> </body> </html> Container orchestrieren: Start bis Shutdown 1. Services im Hintergrund starten docker compose up -d Docker Compose lädt das Nginx-Image automatisch herunter und konfiguriert das Netzwerk. 2. Container-Status überprüfen docker compose ps -a 3. Webanwendung aufrufen Rufe lokal http://localhost:8080 oder auf einem Remote-Server http://<SERVER_IP>:8080 auf. Die Testseite sollte angezeigt werden. 4. Fehlerdiagnose über Logs Bei Problemen kannst du die Container-Logs prüfen: docker compose logs web 5. Sauberes Stoppen und Aufräumen Container stoppen: docker compose stop Alle Projektressourcen entfernen: docker compose down Befehlsübersicht: Über die Grundlagen hinaus Diese Befehle erweitern das Container-Management: docker compose up --build – Images vor dem Start neu erstellen docker compose pause – Container anhalten, ohne sie zu beenden docker compose top – Laufende Prozesse in Containern anzeigen docker compose config – Konfiguration prüfen und anzeigen docker compose exec – Befehle in laufenden Containern ausführen(z. B. docker compose exec web nginx -t zum Testen der Nginx-Konfiguration) Fazit Docker Compose verwandelt die Orchestrierung mehrerer Container von einer manuellen, fehleranfälligen Aufgabe in einen strukturierten und wiederholbaren Prozess. Durch die Installation von Docker Compose, das Definieren von Services in YAML und die Nutzung zentraler Befehle kannst du selbst komplexe Anwendungen zuverlässig verwalten.
14 January 2026 · 6 min to read
Docker-Plattform

Nextcloud mit Docker installieren

Für alle, die vollständige Kontrolle über ihre Daten behalten möchten, bietet Nextcloud eine leistungsstarke Open-Source-Lösung für den Aufbau eines privaten Cloud-Speichersystems. Die Plattform ermöglicht nicht nur eine sichere Dateisynchronisierung über verschiedene Geräte hinweg, sondern auch das Hosten des Speichers auf einem eigenen Server, ohne auf Drittanbieter angewiesen zu sein. In dieser Anleitung führen wir dich durch die Installation von Nextcloud mithilfe isolierter Docker-Container, was die Bereitstellung und Verwaltung erheblich vereinfacht. Außerdem richten wir eine automatische Verschlüsselung des Datenverkehrs mit SSL-Zertifikaten von Let’s Encrypt ein, um eine sichere Übertragung zu gewährleisten. Voraussetzungen Du benötigst: Einen Hostman-Cloud-Server mit vorinstalliertem Linux Ubuntu 24.04. Einen Domainnamen. Installiertes Docker und Docker Compose. Für den Server empfiehlt sich eine Konfiguration mit 1 CPU-Kern, 2 GB RAM und einer öffentlichen IPv4-Adresse, die du bei der Erstellung oder später im Bereich „Network“ anfordern kannst. Der Server wird innerhalb weniger Minuten bereitgestellt. Die IPv4-Adresse sowie Login-Daten für den SSH-Zugang findest du im Dashboard. Nextcloud installieren und ausführen Nextcloud benötigt mehrere wichtige Komponenten: Datenbank: in diesem Fall MariaDB, ein performantes und zuverlässiges Datenbanksystem. SSL-Zertifikat: wir verwenden kostenlose SSL-Zertifikate der Non-Profit-Zertifizierungsstelle Let’s Encrypt. Reverse Proxy: wir setzen Nginx Proxy Manager ein, der eingehende HTTP- und HTTPS-Anfragen an die entsprechenden Container weiterleitet und verwaltet. Schritt 1: Konfigurationsverzeichnis erstellen Zuerst erstellen wir ein Verzeichnis für die Konfigurationsdateien und wechseln hinein: mkdir nextcloud && cd nextcloud Schritt 2: Eine .env-Datei anlegen Diese versteckte Datei speichert Variablen mit Passwörtern: nano .env Inhalt der Datei: NEXTCLOUD_ROOT_PASSWORD=secure_root_password_123 NEXTCLOUD_DB_PASSWORD=secure_nextcloud_db_password_456 NPM_ROOT_PASSWORD=secure_npm_root_password_789 NPM_DB_PASSWORD=secure_npm_db_password_012 Vergiss nicht, die Werte durch deine eigenen Passwörter zu ersetzen. Schritt 3: Die docker-compose.yml-Datei erstellen Öffne sie mit: nano docker-compose.yml Füge folgende Konfiguration ein: (Codeblöcke nicht übersetzt gemäß deinem) volumes:   nextcloud-data:   nextcloud-db:   npm-data:   npm-ssl:   npm-db:   networks:   frontend:   backend:   services:   nextcloud-app:     image: nextcloud:31.0.8     restart: always     volumes:       - nextcloud-data:/var/www/html     environment:       - MYSQL_PASSWORD=${NEXTCLOUD_DB_PASSWORD}       - MYSQL_DATABASE=nextcloud       - MYSQL_USER=nextcloud       - MYSQL_HOST=nextcloud-db       - MYSQL_PORT=3306     networks:       - frontend       - backend     nextcloud-db:     image: mariadb:12.0.2     restart: always     command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW     volumes:       - nextcloud-db:/var/lib/mysql     environment:       - MYSQL_ROOT_PASSWORD=${NEXTCLOUD_ROOT_PASSWORD}       - MYSQL_PASSWORD=${NEXTCLOUD_DB_PASSWORD}       - MYSQL_DATABASE=nextcloud       - MYSQL_USER=nextcloud     networks:       - backend     npm-app:     image: jc21/nginx-proxy-manager:2.12.6     restart: always     ports:       - "80:80"       - "81:81"       - "443:443"     environment:       - DB_MYSQL_HOST=npm-db       - DB_MYSQL_PORT=3306       - DB_MYSQL_USER=npm       - DB_MYSQL_PASSWORD=${NPM_DB_PASSWORD}       - DB_MYSQL_NAME=npm     volumes:       - npm-data:/data       - npm-ssl:/etc/letsencrypt     networks:       - frontend       - backend     npm-db:     image: jc21/mariadb-aria:10.11.5     restart: always     environment:       - MYSQL_ROOT_PASSWORD=${NPM_ROOT_PASSWORD}       - MYSQL_DATABASE=npm       - MYSQL_USER=npm       - MYSQL_PASSWORD=${NPM_DB_PASSWORD}     volumes:       - npm-db:/var/lib/mysql     networks:       - backend Schritt 4: Container starten Starte die Container: docker compose up -d Bei docker compose up -d kann ein Fehler aufgrund der Pull-Limits von Docker Hub auftreten. In diesem Fall: Melde dich bei deinem Docker-Hub-Konto an oder erstelle ein neues Konto. Gehe zu Account settings → Personal access tokens. Klicke auf Generate new token. Füge eine Beschreibung hinzu, wähle ein Ablaufdatum und erteile Berechtigungen: Read, Write, Delete. Klicke Generate. Kopiere den Token (er wird nur einmal angezeigt). Logge dich auf dem Server ein mit: docker login -u dockeruser Ersetze dockeruser durch deinen Benutzernamen und gib den Token als Passwort ein. Starte danach die Container erneut: docker compose up -d Prüfe den Status: docker ps Alle Container sollten den Status Up haben. Schritt 5: HTTPS mit Let’s Encrypt konfigurieren Öffne im Browser: http://<server-IP>:81 Melde dich mit den Standardzugangsdaten an: Login: admin@example.com Passwort: changeme Beim ersten Login: Vollständigen Namen, Spitznamen und E-Mail aktualisieren. Passwort ändern. Schritt 6: Proxy Host hinzufügen Gehe zu Hosts → Proxy Hosts. Klicke Add Proxy Host und fülle aus: Domain Names: deine Domain für Nextcloud Scheme: http Forward Hostname/IP: nextcloud-app Forward Port: 80 Im Tab SSL: Wähle Request a new SSL Certificate Aktiviere: Force SSL HTTP/2 Support HSTS Enabled Gib deine E-Mail für Let’s Encrypt an und akzeptiere die Bedingungen. Speichern. Schritt 7: In Nextcloud einloggen Öffne nun deine Domain. Wenn alles korrekt eingerichtet ist, erscheint die Nextcloud-Weboberfläche und das SSL-Zertifikat wird automatisch von Let’s Encrypt ausgestellt. Erstelle ein neues Administratorkonto. Installiere optional empfohlene Apps oder überspringe diesen Schritt. Damit ist die Installation und Basiskonfiguration abgeschlossen. Fazit In diesem Artikel haben wir gezeigt, wie man Nextcloud mit Docker bereitstellt und ein kostenloses Let’s-Encrypt-Zertifikat einrichtet. Diese Methode gehört zu den zuverlässigsten, sichersten und am einfachsten skalierbaren Ansätzen. Docker sorgt für saubere Isolation, erleichtert Updates und macht Migrationen unkompliziert. Ein SSL-Zertifikat ist unerlässlich zum Schutz sensibler Daten und zur Gewährleistung verschlüsselten Datenverkehrs.
25 November 2025 · 7 min to read

Haben Sie Fragen
oder benötigen Sie Unterstützung?

Unsere Fachleute stehen Ihnen jederzeit zur Verfügung –
egal ob Sie Hilfe benötigen oder nicht wissen, wo Sie anfangen sollen.
E-Mail an uns
Hostman's Support