Was ist Docker?
Docker ist eine Open-Source-Plattform zum Erstellen, Verteilen und Ausführen von Anwendungen in sogenannten Containern. Ein Container bündelt eine Anwendung mit allem was sie braucht (Laufzeitumgebung, Bibliotheken, Konfiguration) in ein portables Paket.
Das Ergebnis: Die App läuft auf jedem System identisch — egal ob auf deinem Laptop, einem NAS oder einem Server in der Cloud.
Container vs. virtuelle Maschine
| Eigenschaft | Container (Docker) | Virtuelle Maschine |
|---|---|---|
| Startzeit | Sekunden | Minuten |
| Ressourcen | Sehr sparsam | Höherer Overhead |
| Isolation | Prozess-Ebene | Komplettes OS |
| Portabilität | Sehr hoch | Eingeschränkt |
| Einsatz | Apps, Dienste | Verschiedene Betriebssysteme |
Die wichtigsten Docker-Begriffe
- Image — Ein Read-only-Bauplan für einen Container (z.B.
nginx:latest) - Container — Eine laufende Instanz eines Images
- Docker Hub — Die öffentliche Registry für Docker Images
- Volume — Persistenter Datenspeicher außerhalb des Containers
- Port-Mapping — Verbindet einen Container-Port mit dem Host-System
Docker Compose — mehrere Container gemeinsam verwalten
Für die meisten Self-Hosting-Projekte nutzt du Docker Compose: eine YAML-Datei die alle Container, Volumes und Netzwerke beschreibt.
Beispiel: Nextcloud mit Datenbank starten:
version: '3'
services:
nextcloud:
image: nextcloud:latest
ports:
- "8080:80"
volumes:
- nextcloud_data:/var/www/html
environment:
- MYSQL_HOST=db
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=geheimespasswort
depends_on:
- db
db:
image: mariadb:10.11
volumes:
- db_data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=rootpasswort
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=geheimespasswort
volumes:
nextcloud_data:
db_data: Starten mit:
docker compose up -d Docker auf dem NAS
Synology und QNAP unterstützen Docker nativ. Auf neueren Synology-Geräten heißt die App Container Manager (früher Docker). Damit kannst du Dienste wie Nextcloud, Jellyfin, Home Assistant oder Vaultwarden direkt auf dem NAS betreiben.