Docker Grundlagen: Installation und wichtige Befehle
Vollständige Docker-Anleitung: Installation, grundlegende Befehle (run, stop, rm, ps), Image-Verwaltung, Volumes und Netzwerk-Grundlagen auf Linux-Servern.
Inhaltsverzeichnis
Docker Grundlagen: Installation und wichtige Befehle
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.
Was ist Docker?
Docker verpackt Anwendungen und ihre Abhängigkeiten in portable Container. Im Gegensatz zu virtuellen Maschinen:
- Teilt den Host-OS-Kernel (viel leichter)
- Startet und stoppt in Sekunden
- Verbraucht deutlich weniger Ressourcen
- Beseitigt das 'Funktioniert bei mir'-Problem
Docker ist der Grundstein moderner Softwareentwicklung und -bereitstellung. Auf REXE-Servern können Sie Anwendungen einfach mit Docker deployen.
Docker installieren
Debian/Ubuntu
# 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
RHEL/CentOS/AlmaLinux
# 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
Installation überprüfen
# 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
Grundlegende Docker-Befehle
Container ausführen
# 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
Container-Verwaltung
# 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 überwachen
# 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-Verwaltung
# 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
Images mit Dockerfile erstellen
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
Volume-Verwaltung
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
Netzwerk-Grundlagen
# 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
Praktische Beispiele
Nginx-Webserver
docker run -d \
--name nginx-web \
-p 80:80 \
-v /var/www/html:/usr/share/nginx/html:ro \
--restart unless-stopped \
nginx:alpine
MySQL-Datenbank
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.
Fazit
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.
Verwandte Artikel
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.
Windows VDS per RDP verbinden: Vollständige Anleitung
Schritt-für-Schritt-Anleitung zur RDP-Verbindung mit Windows Server VDS: Einrichtung, NLA-Sicherheit, Path Panel Firewall-Regel und Fehlerbehebung.
VDS-Server Betriebssystem wechseln: Schritt-für-Schritt
Betriebssystemwechsel am VDS-Server über das REXE-Panel: Backup-Tipps, unterstützte Linux-Distributionen und Windows Server Versionen im Überblick.