Startseite / Wiki / Docker
Homelab

Docker

Docker ist eine Container-Plattform mit der du Anwendungen isoliert und reproduzierbar betreiben kannst — ideal für Self-Hosting auf NAS, VPS oder Heimserver.

15. Jänner 2025

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

EigenschaftContainer (Docker)Virtuelle Maschine
StartzeitSekundenMinuten
RessourcenSehr sparsamHöherer Overhead
IsolationProzess-EbeneKomplettes OS
PortabilitätSehr hochEingeschränkt
EinsatzApps, DiensteVerschiedene 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:

docker-compose.yml
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:

bash
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.

Tipp

#docker #container #self-hosting #homelab #compose #image