VDS-Server per SSH verbinden: PuTTY, Terminal & Schlüssel
SSH-Verbindung zum Linux VDS-Server: PuTTY, Terminal, schlüsselbasierte Authentifizierung, Path Panel Firewall-Regel und Sicherheitstipps für Einsteiger.
Vollständige Docker-Anleitung: Installation, grundlegende Befehle (run, stop, rm, ps), Image-Verwaltung, Volumes und Netzwerk-Grundlagen auf Linux-Servern.
Docker ist eine Open-Source-Plattform, mit der Sie Anwendungen in isolierten Containern ausführen können. Es bietet eine konsistente Umgebung von der Entwicklung bis zur Produktion. Diese Anleitung behandelt die Docker-Installation, grundlegende Befehle und praktische Anwendungsszenarien.
Docker verpackt Anwendungen und ihre Abhängigkeiten in portable Container. Im Gegensatz zu virtuellen Maschinen:
Docker ist der Grundstein moderner Softwareentwicklung und -bereitstellung. Auf REXE-Servern können Sie Anwendungen einfach mit Docker deployen.
# Alte Versionen entfernen
sudo apt remove docker docker-engine docker.io containerd runc
# Voraussetzungen installieren
sudo apt update
sudo apt install ca-certificates curl gnupg lsb-release -y
# Docker GPG-Schlüssel hinzufügen
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# Docker-Repository hinzufügen
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Docker installieren
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
# Dienst starten und aktivieren
sudo systemctl start docker
sudo systemctl enable docker
# Docker-Repository hinzufügen
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# Docker installieren
sudo dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
# Dienst starten
sudo systemctl start docker
sudo systemctl enable docker
# Docker-Version prüfen
docker --version
# Test-Container ausführen
sudo docker run hello-world
# Docker ohne sudo verwenden
sudo usermod -aG docker $USER
newgrp docker
# Einfachen Container starten
docker run nginx
# Im Hintergrund (detached) ausführen
docker run -d nginx
# Mit Port-Weiterleitung
docker run -d -p 8080:80 nginx
# Mit Namen
docker run -d --name web-server -p 8080:80 nginx
# Mit Umgebungsvariable
docker run -d -e MYSQL_ROOT_PASSWORD=geheim --name mysql mysql:8.0
# Mit Volume-Mount
docker run -d -v /host/verzeichnis:/container/verzeichnis nginx
# Automatischer Neustart
docker run -d --restart unless-stopped nginx
# Interaktives Terminal
docker run -it ubuntu bash
# Laufende Container auflisten
docker ps
# Alle Container auflisten (auch gestoppte)
docker ps -a
# Container stoppen
docker stop container_name
# Container starten
docker start container_name
# Container neu starten
docker restart container_name
# Container entfernen (muss gestoppt sein)
docker rm container_name
# Laufenden Container erzwungen entfernen
docker rm -f container_name
# Alle gestoppten Container entfernen
docker container prune
# Container-Logs anzeigen
docker logs container_name
# Logs in Echtzeit verfolgen
docker logs -f container_name
# Letzte 100 Zeilen
docker logs --tail 100 container_name
# Ressourcennutzung
docker stats
# Container-Details
docker inspect container_name
# Shell im Container öffnen
docker exec -it container_name bash
# Befehl im Container ausführen
docker exec container_name ls /var/www
# Image herunterladen
docker pull nginx
docker pull nginx:1.25
docker pull ubuntu:22.04
# Lokale Images auflisten
docker images
# Image entfernen
docker rmi nginx
# Ungenutzte Images entfernen
docker image prune
# Alle ungenutzten Ressourcen bereinigen
docker system prune -a
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install --production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
# Image erstellen
docker build -t meine-app:1.0 .
# Zu Docker Hub pushen
docker tag meine-app:1.0 benutzername/meine-app:1.0
docker push benutzername/meine-app:1.0
Volumes stellen sicher, dass Daten auch nach dem Löschen von Containern erhalten bleiben.
# Volume erstellen
docker volume create datenbank-daten
# Volumes auflisten
docker volume ls
# Volume in Container einbinden
docker run -d -v datenbank-daten:/var/lib/mysql mysql:8.0
# Bind-Mount (Host-Verzeichnis)
docker run -d -v /root/daten:/app/daten nginx
# Volume entfernen
docker volume rm datenbank-daten
# Ungenutzte Volumes bereinigen
docker volume prune
# Netzwerke auflisten
docker network ls
# Benutzerdefiniertes Netzwerk erstellen
docker network create app-netzwerk
# Container mit Netzwerk verbinden
docker run -d --network app-netzwerk --name web nginx
docker run -d --network app-netzwerk --name db mysql:8.0
# Container im selben Netzwerk können sich per Name erreichen
# Aus web-Container: ping db
# Netzwerk-Details
docker network inspect app-netzwerk
docker run -d \
--name nginx-web \
-p 80:80 \
-v /var/www/html:/usr/share/nginx/html:ro \
--restart unless-stopped \
nginx:alpine
docker run -d \
--name mysql-db \
-e MYSQL_ROOT_PASSWORD=starkes_passwort \
-e MYSQL_DATABASE=meine-app \
-v mysql-daten:/var/lib/mysql \
-p 3306:3306 \
--restart unless-stopped \
mysql:8.0
Für die Verwaltung mehrerer Container verwenden Sie Docker Compose. Eine docker-compose.yml-Datei ermöglicht das Starten aller Dienste mit einem einzigen Befehl.
Docker ist ein unverzichtbares Werkzeug für moderne Anwendungsbereitstellung. Nach den Grundlagen können Sie zu Docker Compose für die Verwaltung mehrerer Dienste übergehen. Auf REXE-Servern können Sie Anwendungen isoliert, sicher und portabel betreiben.
Virtuelle Maschinen führen ein vollständiges Betriebssystem aus (Gigabytes Speicher, Minuten zum Starten). Docker-Container teilen den Host-Kernel, benötigen Megabytes und starten in Sekunden. Container sind leichter und schneller, bieten aber weniger Isolation.
Ein Docker Volume ist verwalteter Speicher unter /var/lib/docker/volumes/. Ein Bind Mount verbindet ein bestimmtes Host-Verzeichnis mit dem Container. Volumes sind besser für Portabilität und Backups; Bind Mounts eignen sich für die Code-Freigabe in der Entwicklung.
Daten innerhalb des Containers gehen verloren, aber Daten in Volumes bleiben erhalten. Verwenden Sie immer Volumes für Daten, die Container-Neustarts überleben müssen: 'docker run -v daten-volume:/daten/pfad ...'.
Docker Hub ist die zentrale Registry für offizielle und Community-Images. 'docker pull nginx' lädt das nginx-Image von Docker Hub herunter. Sie können eigene Images mit 'docker push' hochladen. Erstellen Sie ein kostenloses Konto auf hub.docker.com.
Führen Sie den Container mit '--restart unless-stopped' aus. Damit startet er beim Server-Neustart oder nach einem Absturz automatisch neu. Für bestehende Container: 'docker update --restart unless-stopped container_name'.
SSH-Verbindung zum Linux VDS-Server: PuTTY, Terminal, schlüsselbasierte Authentifizierung, Path Panel Firewall-Regel und Sicherheitstipps für Einsteiger.
Schritt-für-Schritt-Anleitung zur RDP-Verbindung mit Windows Server VDS: Einrichtung, NLA-Sicherheit, Path Panel Firewall-Regel und Fehlerbehebung.
Betriebssystemwechsel am VDS-Server über das REXE-Panel: Backup-Tipps, unterstützte Linux-Distributionen und Windows Server Versionen im Überblick.