Docker ist die Standard-Plattform für Container. Diese Anleitung zeigt die Installation der aktuellen Docker CE (Community Edition).
Voraussetzungen
- Ubuntu 20.04, 22.04, 24.04 oder Debian 11/12
- 64-Bit-System
- Root-Zugriff
Alte Versionen entfernen
Falls ältere Docker-Versionen installiert sind:
apt remove docker docker-engine docker.io containerd runcInstallation via Repository (empfohlen)
1. Abhängigkeiten installieren
apt update
apt install ca-certificates curl gnupg lsb-release2. Docker GPG-Key hinzufügen
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpgFür Debian:
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg3. Repository hinzufügen
Ubuntu:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/nullDebian:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null4. Docker installieren
apt update
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginSchnelle Installation (convenience script)
Alternativ mit dem offiziellen Skript:
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.shInstallation prüfen
Docker-Version
docker --versionDocker Compose-Version
docker compose versionTest-Container
docker run hello-worldAusgabe sollte "Hello from Docker!" enthalten.
Dienst-Status
systemctl status dockerDocker ohne sudo nutzen
Docker-Befehle erfordern normalerweise root. Um Docker als normaler Benutzer zu nutzen:
# Gruppe docker erstellen (falls nicht vorhanden)
groupadd docker
# Benutzer zur Gruppe hinzufügen
usermod -aG docker $USER
# Neu anmelden oder:
newgrp dockerTesten:
docker run hello-worldDocker automatisch starten
systemctl enable docker
systemctl enable containerdDocker-Konfiguration
Speicherort ändern
Standardmäßig unter /var/lib/docker. Für andere Partition:
mkdir /etc/dockerErstellen Sie /etc/docker/daemon.json:
{
"data-root": "/mnt/data/docker"
}systemctl restart dockerLogging konfigurieren
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}DNS konfigurieren
{
"dns": ["1.1.1.1", "8.8.8.8"]
}Mehrere Optionen
{
"data-root": "/mnt/docker",
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"dns": ["1.1.1.1", "8.8.8.8"],
"storage-driver": "overlay2"
}Nützliche Docker-Befehle
Container
# Container auflisten
docker ps
docker ps -a
# Container starten/stoppen
docker start container-name
docker stop container-name
# Container löschen
docker rm container-name
# Logs anzeigen
docker logs container-name
docker logs -f container-name
# Shell im Container
docker exec -it container-name bashImages
# Images auflisten
docker images
# Image herunterladen
docker pull nginx:latest
# Image löschen
docker rmi nginx:latestAufräumen
# Gestoppte Container löschen
docker container prune
# Ungenutzte Images löschen
docker image prune
# Alles aufräumen
docker system prune -aDocker Compose
Docker Compose ist nun als Plugin integriert:
# Neue Syntax
docker compose up -d
docker compose down
docker compose logs
# Alte Syntax (docker-compose v1) nicht mehr nötigBeispiel docker-compose.yml
version: '3.8'
services:
web:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html:rodocker compose up -dFirewall-Konfiguration
Docker manipuliert iptables direkt. Für ufw:
In /etc/docker/daemon.json:
{
"iptables": false
}Dann Ports manuell mit ufw freigeben.
Troubleshooting
"Cannot connect to Docker daemon"
# Docker läuft?
systemctl status docker
# Starten
systemctl start docker
# Socket-Berechtigungen
ls -la /var/run/docker.sock"Permission denied"
# Zur docker-Gruppe hinzufügen
sudo usermod -aG docker $USER
# Neu anmelden!Speicherplatz voll
# Speicherverbrauch
docker system df
# Aufräumen
docker system prune -a --volumesNetzwerk-Probleme
# DNS im Container testen
docker run --rm busybox nslookup google.com
# DNS in daemon.json konfigurierenUpdates
apt update
apt upgrade docker-ce docker-ce-cli containerd.ioDeinstallation
apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
rm -rf /var/lib/docker
rm -rf /var/lib/containerdFazit
Docker ist schnell installiert und einsatzbereit. Nutzen Sie das offizielle Repository für aktuelle Versionen. Vergessen Sie nicht, Ihren Benutzer zur docker-Gruppe hinzuzufügen und Log-Limits zu konfigurieren.