Einführung
Docker hat sich zu einer der beliebtesten Technologien für die Bereitstellung und Verwaltung von Anwendungen in modernen Serverumgebungen entwickelt. Durch das Packen von Anwendungen und ihren Abhängigkeiten in isolierte Container, Docker sorgt für Konsistenz in der gesamten Entwicklung, Testen, und Produktionsumgebungen bei gleichzeitiger Minimierung des Ressourcenverbrauchs.
In Kombination mit a Virtueller privater Server (VPS), Docker bietet eine leistungsstarke, flexibel, und kostengünstige Plattform zum Hosten von Websites, APIs, Datenbanken, Entwicklungsumgebungen, und Microservices.
In dieser Anleitung wird erklärt, was Docker ist, warum es für VPS-Hosting von Vorteil ist, und wie man Docker auf einem Ubuntu VPS installiert und konfiguriert.
Was ist Docker??
Docker ist eine Open-Source-Containerisierungsplattform, die die Ausführung von Anwendungen in isolierten Umgebungen, sogenannten Containern, ermöglicht.
Im Gegensatz zu herkömmlichen virtuellen Maschinen, Docker-Container erfordern kein separates Betriebssystem. Stattdessen, Container teilen sich den Kernel des Host-Betriebssystems und wahren gleichzeitig die Isolation zwischen Anwendungen.
Diese Architektur bietet mehrere Vorteile:
WordPress-Webhosting
Ab 3,99 $/Monat
- Geringerer Ressourcenverbrauch
- Schnellere Bereitstellung
- Konsistente Umgebungen
- Vereinfachtes Anwendungsmanagement
- Verbesserte Skalierbarkeit
So funktioniert Docker
Docker verwendet mehrere Schlüsselkomponenten:
Bilder
Docker-Images dienen als Vorlagen zum Erstellen von Containern.
Ein Bild enthält:
- Anwendungscode
- Laufzeitumgebung
- Bibliotheken
- Abhängigkeiten
- Konfigurationsdateien
Bilder sind unveränderlich und wiederverwendbar.
Container
Container sind laufende Instanzen von Docker-Images.
Mehrere Container können gleichzeitig auf demselben VPS laufen, ohne sich gegenseitig zu stören.
Günstiger VPS-Server
Ab 2,99 $/Monat
Docker-Datei
Eine Docker-Datei ist eine Textdatei mit Anweisungen zum automatischen Erstellen von Docker-Images.
Beispiel:
FROM ubuntu:24.04
RUN apt update && apt install -y nginx
CMD ["nginx", "-g", "daemon off;"]
Docker-Registrierung
Docker-Registrierungen speichern und verteilen Docker-Images.
Zu den beliebten Registern gehören::
- Docker-Hub
- GitHub-Container-Registrierung
- Quay.io
- Private Register
Warum Docker auf einem VPS verwenden??
Docker- und VPS-Hosting funktionieren hervorragend zusammen.
Ressourceneffizienz
Container verbrauchen deutlich weniger Ressourcen als herkömmliche virtuelle Maschinen, da sie den Kernel des Host-Betriebssystems gemeinsam nutzen.
Windows VPS-Hosting
Fernzugriff und vollständige Verwaltung
Zu den Vorteilen gehören::
- Geringere Speichernutzung
- Reduzierter CPU-Overhead
- Schnellere Startzeiten
Anwendungsisolation
Jede Anwendung wird in einem eigenen Container ausgeführt.
Dies verhindert:
- Abhängigkeitskonflikte
- Konflikte bei der Paketversion
- Anwendungsinterferenz
Portabilität
Die Verwendung desselben Bildes verbessert die Konsistenz, sondern Architektur, Kernel-Funktionen, Speicherung und Konfiguration können das Verhalten dennoch ändern.
Sie können einen Container auf Ihrem Entwicklungscomputer erstellen und genau denselben Container für die Produktion bereitstellen.
Skalierbarkeit
Container können schnell repliziert werden, um erhöhten Datenverkehr oder Arbeitslasten zu bewältigen.
Dies ist besonders nützlich für:
- APIs
- SaaS-Anwendungen
- Webanwendungen
- Mikrodienste
Vereinfachte Bereitstellung
Anwendungen können mit einem einzigen Befehl bereitgestellt werden, anstatt Software und Abhängigkeiten manuell zu installieren.
Häufige Anwendungsfälle für Docker VPS
Docker wird häufig verwendet für:
Website-Hosting
Beispiele:
- WordPress
- Joomla
- Drupal
- Laravel
Entwicklungsumgebungen
Entwickler können isolierte Umgebungen verwalten:
- PHP
- Python
- Node.js
- Gehen
- Java
Datenbanken
Zu den beliebten Datenbankcontainern gehören::
- MySQL
- MariaDB
- PostgreSQL
- MongoDB
- Redis
Reverse-Proxys
Beispiele:
- Nginx
- Verkehr
- HAProxy
Selbstgehostete Anwendungen
Beispiele:
- Nextcloud
- Mastodon
- Öffnen Sie die WebUI
- FreeChat
- GitLab
Voraussetzungen
Diese Befehle zielen auf ein neues Ziel ab, Unterstütztes Ubuntu VPS. Wenn Docker oder Containerd bereits installiert ist, Überprüfen Sie Paketkonflikte und bewahren Sie vorhandene Arbeitslasten auf, bevor Sie Repositorys ändern. Führen Sie Docker-Befehle mit sudo aus, bis Sie der Docker-Gruppe absichtlich Zugriff gewähren.
Vor der Installation von Docker, Stellen Sie sicher, dass Ihr VPS die folgenden Anforderungen erfüllt.
Betriebssystem
Empfohlen:
- Ubuntu 22.04 LTS
- Ubuntu 24.04 LTS
Für andere Distributionen sind eigene Installationsanweisungen erforderlich; Beispiele hierfür sind:
- AlmaLinux
- Rockiges Linux
- Debian
- Fedora
Root- oder Sudo-Zugriff
Zugriff überprüfen:
sudo whoami
Erwartete Ausgabe:
root
Vorhandene Pakete aktualisieren
Aktualisieren Sie das Betriebssystem vor der Installation:
sudo apt update
sudo apt upgrade -y
Docker unter Ubuntu installieren
Schritt 1: Erforderliche Abhängigkeiten installieren
Installieren Sie die erforderlichen Pakete:
sudo apt install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common \
gnupg \
lsb-release -y
Schritt 2: Fügen Sie den offiziellen GPG-Schlüssel von Docker hinzu
Laden Sie den Docker-Repository-Signaturschlüssel herunter und installieren Sie ihn:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
Verifizieren:
ls -l /usr/share/keyrings/docker.gpg
Schritt 3: Docker-Repository hinzufügen
Fügen Sie das offizielle Repository von Docker hinzu:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Paketlisten aktualisieren:
sudo apt update
Schritt 4: Installieren Sie die Docker Engine
Installieren Sie Docker:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
Schritt 5: Überprüfen Sie die Docker-Installation
Überprüfen Sie die Docker-Version:
docker --version
Beispielausgabe:
Docker version <installed-version>
Überprüfen Sie den Servicestatus:
sudo systemctl status docker
Erwartete Ausgabe:
active (running)
Schritt 6: Aktivieren Sie Docker beim Booten
Aktivieren Sie den automatischen Start:
sudo systemctl enable docker
Verifizieren:
sudo systemctl is-enabled docker
Erwartete Ausgabe:
enabled
Ausführen Ihres ersten Docker-Containers
Docker stellt ein einfaches Testbild bereit.
Laufen:
sudo docker run --rm hello-world
Erfolgreiche Ausgabe bestätigt:
- Docker Engine funktioniert
- Container-Downloads funktionieren ordnungsgemäß
- Die Netzwerkkonnektivität ist betriebsbereit
Ausführen eines Nginx-Containers
Starten Sie einen Webserver:
docker run -d \
--name nginx \
-p 80:80 \
nginx
Überprüfen Sie die Ausführung von Containern:
docker ps
Öffnen Sie Ihren Browser:
http://SERVER-IP
Die Nginx-Willkommensseite sollte erscheinen.
Docker ohne Root ausführen
Die Mitgliedschaft in der Docker-Gruppe gewährt effektiv die Kontrolle über diesen Server auf Root-Ebene; Nur vertrauenswürdige Administratoren sollten es erhalten. Dies unterscheidet sich vom Docker-Rootless-Modus.
Standardmäßig, Docker erfordert Root-Rechte.
Fügen Sie Ihren Benutzer der Docker-Gruppe hinzu:
sudo usermod -aG docker $USER
Änderungen übernehmen:
newgrp docker
Verifizieren:
docker ps
Wenn kein Sudo erforderlich ist, Die Konfiguration ist erfolgreich.
Grundlegende Docker-Befehle
Laufende Container auflisten
docker ps
Alle Container auflisten
docker ps -a
Bilder ansehen
docker images
Container stoppen
docker stop container_name
Container starten
docker start container_name
Container neu starten
docker restart container_name
Behälter entfernen
docker rm container_name
Bild entfernen
docker rmi image_name
Docker Compose installieren
Moderne Docker-Installationen enthalten Docker Compose als Plugin.
Verifizieren:
docker compose version
Beispielausgabe:
Docker Compose version v2.x.x
Erstellen Sie Ihr erstes Docker Compose-Projekt
Entfernen Sie zuerst den früheren Demonstrations-NGINX-Container, wenn dieser noch den Port verwendet 80 oder der Name Nginx. Für echte Anwendungen, Verwenden Sie persistente Volumes, versionierte Bild-Tags erstellt und getestet Backups bevor Sie die Behälter austauschen.
Erstellen Sie ein Projektverzeichnis:
mkdir docker-test
cd docker-test
Erstellen:
nano compose.yml
Beispiel:
services:
nginx:
image: nginx
container_name: nginx
ports:
- "80:80"
Start:
docker compose up -d
Verifizieren:
docker compose ps
Stoppen:
docker compose down
Verwalten von Containerprotokollen
Protokolle anzeigen:
docker logs container_name
Verfolgen Sie Protokolle in Echtzeit:
docker logs -f container_name
Dies ist besonders nützlich bei der Fehlerbehebung bei Anwendungen.
Docker-Container aktualisieren
Aktuelles Bild abrufen:
docker pull nginx
Behälter stoppen:
docker stop nginx
Behälter entfernen:
docker rm nginx
Erstellen Sie einen neuen Container mit dem aktualisierten Image.
Best Practices für die Docker-Sicherheit
Veröffentlichte Ports können die normale UFW-Filterung umgehen, da Docker seine eigenen Netzwerkregeln verwaltet. Beschränken Sie den Zugriff mithilfe von Docker-kompatibler Filterung oder einer Upstream-Firewall und binden Sie private Dienste an localhost oder eine geschützte Schnittstelle. Legen Sie niemals die nicht authentifizierte Docker-API offen.
Verwenden Sie vertrauenswürdige Bilder
Bevorzugen Sie offizielle Bilder von vertrauenswürdigen Registern.
Beispiel:
nginx
mariadb
redis
ubuntu
Vermeiden Sie es, als Root ausgeführt zu werden
Konfigurieren Sie Anwendungen nach Möglichkeit so, dass sie als Nicht-Root-Benutzer ausgeführt werden.
Halten Sie Docker auf dem neuesten Stand
Regelmäßig aktualisieren:
sudo apt update
sudo apt upgrade
Begrenzen Sie die Ressourcennutzung
Beispiel:
docker run \
--memory=512m \
--cpus=1 \
nginx
Dadurch wird verhindert, dass ein Container übermäßig viele Ressourcen verbraucht.
Entfernen Sie nicht verwendete Objekte
Bereinigen Sie ungenutzte Ressourcen:
docker system prune -a
Überprüfen Sie es sorgfältig, bevor Sie es bestätigen.
Allgemeine Docker-Fehlerbehebung
Docker-Dienst wird nicht ausgeführt
Manuell starten:
sudo systemctl start docker
Zugriff verweigert
Überprüfen Sie die Gruppenmitgliedschaft:
groups
Sicherstellen:
docker
erscheint in der Ausgabe.
Port bereits verwendet
Überprüfen Sie die Abhördienste:
ss -tulpn
Ändern Sie bei Bedarf die Docker-Portzuordnung:
docker run -p 8080:80 nginx
Container wird sofort verlassen
Protokolle prüfen:
docker logs container_name
Die meisten Startprobleme können durch Protokollanalyse identifiziert werden.
Docker vs. virtuelle Maschinen
| Besonderheit | Docker-Container | Virtuelle Maschinen |
|---|---|---|
| Startzeit | Sekunden | Minuten |
| Ressourcennutzung | Niedrig | Hoch |
| Gastbetriebssystem | Nicht erforderlich | Erforderlich |
| Leistung | Nahezu einheimisch | Leichter Overhead |
| Skalierbarkeit | Exzellent | Mäßig |
Container sind ideal für die Anwendungsbereitstellung, während virtuelle Maschinen weiterhin nützlich sind, wenn eine vollständige Isolierung des Betriebssystems erforderlich ist.
Letzte Gedanken
Docker verwandelt einen VPS in eine flexible Anwendungs-Hosting-Plattform, auf der Websites ausgeführt werden können, APIs, Datenbanken, Entwicklungsumgebungen, und Unternehmensanwendungen mit minimalem Overhead. Seine leichte Architektur, Portabilität, und Skalierbarkeit machen es zu einem der wertvollsten Tools, die modernen Systemadministratoren und Entwicklern zur Verfügung stehen.
Indem Sie Docker auf Ihrem VPS installieren und die Grundlagen der Containerverwaltung erlernen, Sie erhalten eine leistungsstarke Grundlage für die zuverlässige Bereitstellung, sicher, und hochportable Anwendungen in nahezu jeder Umgebung.
