Docker-Netzwerk debuggen mit temporären Hilfs-Containern Ein temporärer Debug-Container im selben Netzwerk ist die schnellste Methode um Netzwerkprobleme zwischen Containern zu diagnostizieren. Das Prinzip Statt Tools in den Ziel-Container zu installieren oder die Anwendung zu verändern, startet man…
Docker Swarm vs Kubernetes - wann was die richtige Wahl ist Swarm oder Kubernetes — beide orchestrieren Container, aber für unterschiedliche Szenarien. Docker Swarm Swarm ist direkt in Docker eingebaut. Wer Docker kennt, kennt 80 % von Swarm. Stärken: Kein Extra-Tool, kein extra Lernaufwand Gleiche …
Netzwerkisolation zwischen Compose-Stacks durchsetzen Verschiedene Compose-Stacks auf demselben Host können sich standardmäßig gegenseitig erreichen — das ist oft unerwünscht. Das Problem: Default-Isolation existiert nicht Compose erstellt pro Stack ein eigenes Netzwerk (). Auf den ersten Blick sieh…
Container-Shell ohne Bash betreten - Debugging in minimalen Images Minimale Images haben keine Bash, Distroless-Images haben gar keine Shell — hier sind die Techniken um trotzdem in einen Container zu kommen. Alpine: sh statt bash Alpine-basierte Images (die Mehrheit der Docker Hub Images) haben kei…
Caddy als Reverse Proxy für Docker - einfacher als Nginx Caddy besorgt automatisch TLS-Zertifikate von Let's Encrypt und hat eine deutlich einfachere Konfigurationssyntax als Nginx. Warum Caddy? Automatisches HTTPS: Let's Encrypt-Zertifikate werden automatisch angefordert und erneuert Einfache Synta…
Von docker-compose auf Compose v2 migrieren - was sich geändert hat (v1) wurde im Januar 2024 offiziell eingestellt — Zeit für die Migration auf (v2). Was ist der Unterschied? docker-compose v1: Standalone Python-Binary, separat installiert, veraltet seit 2021, Support-Ende Januar 2024. docker compo…
Docker ohne Internetzugang betreiben - Air-Gap-Setups Wenn der Produktionsserver kein Internet hat, müssen Images vor dem Deployment vorbereitet und transferiert werden. Das grundlegende Problem Docker pulled Images standardmäßig von Docker Hub oder einer anderen Registry. Ohne Internet schlägt jede…
Datenbank-Backups aus Docker-Containern automatisieren Datenbank-Dumps aus laufenden Containern zu erstellen ist einfach — die Herausforderung ist, es zuverlässig zu automatisieren und die Backups sicher aufzubewahren. Manueller Dump PostgreSQL MySQL / MariaDB Automatisierung via Cron auf dem Host D…
Autokuma - Docker-Container automatisch in Uptime Kuma anlegen Autokuma liest Docker-Labels aus und erstellt daraus automatisch Monitore in Uptime Kuma — ohne manuelle Konfiguration im Dashboard. Was ist Autokuma? Wer viele Container betreibt, kennt das Problem: Jeder neue Dienst muss manuell in Upt…
Docker-Logs zentralisieren mit dem Loki-Log-Driver Der Loki Log Driver sendet Container-Logs direkt vom Docker-Daemon an Loki — ohne Promtail als Zwischenschicht. Zwei Wege zu Loki Der vorherige Artikel zeigt den Promtail-Ansatz: Promtail liest Docker-Logdateien vom Host. Der Loki-Log-Driver geht ei…
dockurr-windows - Windows 10 und 11 im Docker-Container ausführen dockurr/windows ermöglicht es, Windows 10, 11 oder Server-Editionen als vollwertige virtuelle Maschine innerhalb eines Docker-Containers zu betreiben. Was ist dockurr/windows? Das Image von dockurr nutzt KVM-Virtualisierung innerhalb …
Docker Context - mehrere Docker-Hosts über die CLI verwalten Docker Context ist ein eingebautes Feature, das mehrere Docker-Hosts über die gewohnte CLI erreichbar macht — ohne SSH-Aliasse, ohne extra Tools. Wie Docker Context funktioniert Jeder Context speichert eine Verbindungskonfiguration: welche…
AppArmor und seccomp in Docker - Systemaufrufe einschränken Docker-Container teilen den Host-Kernel – wer den Angriffsfläche minimieren will, schränkt Systemaufrufe und Dateizugriffe mit seccomp und AppArmor ein. Was sind seccomp und AppArmor? seccomp (Secure Computing Mode): Filtert Systemaufrufe (…
Malus - satirisches Open-Source-Projekt im Container Malus ist ein satirisches Open-Source-Projekt, das die Absurdität moderner Software-Stacks humorvoll auf die Schippe nimmt und sich dennoch problemlos als Docker-Container betreiben lässt. Was ist Malus? Nicht jedes Selbst-Hosting-Projekt muss ern…
Mehrere Docker-Hosts mit einem Stack verwalten Ab zwei Docker-Servern stellt sich die Frage: Wie managed man mehrere Hosts effizient, ohne sich jedes Mal per SSH einzuloggen? Option 1: Docker Context — der einfachste Weg Docker Context erlaubt es, mit einem einzigen CLI zwischen mehreren Docker-Host…
Changelogs von Docker-Images verfolgen - worauf man vor dem Update achten sollte Blindes Image-Update ist Glückssache – wer Changelogs liest, erkennt Breaking Changes bevor sie Probleme verursachen. Wo findet man Changelogs? GitHub Releases – die zuverlässigste Quelle für die meisten Open-Source-Pro…
Datenbank-Container updaten ohne Datenverlust Datenbank-Images zu updaten ist riskanter als App-Container – falsche Reihenfolge oder übersprungene Major-Versionen können Daten korrumpieren. Grundregel: Immer zuerst sichern Bevor irgendwas an einem Datenbank-Container geändert wird: Das Backup muss e…
Arcane - Docker-Management-UI für Compose-Stacks Arcane ist ein leichtgewichtiges Web-Interface zur Verwaltung von Docker-Compose-Stacks mit Echtzeit-Logs und Container-Kontrolle. Was ist Arcane? Arcane richtet sich an Homelab-Betreiber, die ihre Docker-Compose-Stacks über eine grafische Oberfläche …
Datenbank-Container im Produktivbetrieb - was man wissen muss Datenbanken in Docker zu betreiben ist absolut möglich — aber nur, wenn man ein paar wichtige Punkte beachtet. Das wichtigste zuerst: Persistenz Ohne Volume verliert ein Datenbankcontainer bei jedem Neustart alle Daten. Benannte Volumes s…
Alte Images und Container automatisch bereinigen Docker häuft still Gigabytes an unbenutzten Images, gestoppten Containern und verwaisten Volumes an – ohne automatische Bereinigung ist eine volle Disk nur eine Frage der Zeit. Das Problem Bei jedem werden neue Images gezogen. Die alten Images bleiben…
Watchtower richtig konfigurieren - automatische Updates ohne böse Überraschungen Watchtower kann entweder ein nützliches Automatisierungswerkzeug oder ein zuverlässiger Produktions-Saboteur sein – je nach Konfiguration. Grundkonfiguration nutzt das erweiterte Cron-Format mit Sekunden: . Benachrichti…
Cron-Jobs mit Ofelia - der saubere Weg für Container-Scheduler Ofelia ist ein Job-Scheduler speziell für Docker — er führt Befehle in anderen Containern aus und protokolliert die Ergebnisse sauber. Warum nicht einfach Cron? Cron im Container zu betreiben bedeutet: ein Prozess-Manager im Container, L…
Daten nie im Container-Layer speichern - warum und wie Wer Daten im Container-Layer statt in Volumes speichert, verliert sie beim nächsten – ein Fehler der besonders bei Datenbanken schmerzt. Was der Container-Layer ist Jeder Container besteht aus Read-Only-Image-Layern plus einem beschreibbaren Con…
Pinned Versions vs latest - wie man den richtigen Mittelweg findet ist unvorhersehbar, zu stark gepinnte Versionen verpassen Sicherheitsupdates – der richtige Mittelweg ist eine Frage der Strategie. Das Problem mit latest zeigt auf den neuesten Build zum Zeitpunkt des Pulls. Ein nächste Woche kann e…
Gluetun WebUI - grafische Oberfläche zur Gluetun-Verwaltung Die Gluetun WebUI ergänzt den Gluetun VPN-Container um eine browserbasierte Oberfläche, über die Verbindungsstatus, Serverauswahl und Kill-Switch-Zustand überwacht werden können. Was ist die Gluetun WebUI? Gluetun selbst bringt eine eingeba…
Daten zwischen Containern teilen - Volumes und Netzwerk richtig einsetzen Zwei Container müssen manchmal dieselben Daten nutzen – der richtige Ansatz hängt davon ab ob es um Dateien oder um Live-Kommunikation geht. Zwei Arten des Teilens Volumes – für Dateien, die von mehreren Containern gelesen ode…
Docker-Logs zentralisieren - Loki und Promtail mit Docker Logs sind nach Container-Neustarts weg, über viele Container verteilt und schwer durchsuchbar — Grafana Loki löst all das. Das Problem Standardmäßig schreibt Docker Logs als JSON-Dateien auf den Host. zeigt sie Container-für-Container. Wer üb…
LoggiFly - Log-Aggregation und -Visualisierung im Container LoggiFly ist ein leichtgewichtiger Log-Kollektor für Docker-Umgebungen, der Container-Logs sammelt, filtert und per Benachrichtigung weiterleitet. Was ist LoggiFly? LoggiFly überwacht Docker-Container-Logs in Echtzeit und ermöglicht das Wei…
Docker selbst aktualisieren - ohne laufende Container zu verlieren Den Docker-Daemon zu aktualisieren klingt riskanter als es ist – mit der richtigen Vorbereitung überleben alle Container den Update-Vorgang. Container überleben den Daemon-Neustart Standardmäßig werden Container gestoppt wenn der Dae…
Watchtower als Monitoring-Tool - nur benachrichtigen statt automatisch updaten Watchtower kann prüfen, ob neue Image-Versionen verfügbar sind, und eine Benachrichtigung senden — ohne einen einzigen Container anzufassen. Das Problem mit Auto-Updates in der Produktion Automatische Container-Updates kl…
Docker-Images aktuell halten - manuell, Watchtower und Renovate Veraltete Images bedeuten ungepatchte Sicherheitslücken – aber blinde automatische Updates können Produktivsysteme brechen. Hier sind die drei Ansätze und wann man welchen wählt. Ansatz 1: Manuell (kontrolliert, für Produktion) Der einf…
Boxarr - Docker-Container strukturiert organisieren Boxarr ist ein leichtgewichtiges Dashboard zur visuellen Organisation und Übersicht laufender Docker-Container im Homelab. Was ist Boxarr? Wer viele Docker-Container auf einem oder mehreren Hosts betreibt, verliert schnell den Überblick. Boxarr sch…
Docker Swarm - wann es gegenüber Compose Sinn macht Docker Compose und Docker Swarm nutzen dasselbe YAML-Format — aber Swarm bringt Multi-Host-Clustering und echte Hochverfügbarkeit. Der Unterschied auf einen Blick Compose: Ein Host, ein Daemon, ideal für Entwicklung und einfache Produktionssetups. …
Coolify - selbstgehostetes Heroku für eigene Server Coolify ist eine Open-Source-Plattform, die das Deployment von Apps, Datenbanken und Diensten auf eigenen Servern so einfach macht wie bei Heroku oder Render. Was ist Coolify? Coolify abstrahiert die Komplexität von Docker, Reverse Proxies und SSL-…
GPU Hot - GPU-Temperatur und -Auslastung im Container überwachen GPU Hot ist ein schlankes Monitoring-Tool, das GPU-Temperatur, Auslastung, VRAM-Verbrauch und Taktfrequenz als Web-Dashboard bereitstellt — nützlich für alle, die GPU-Workloads wie KI-Inferenz oder Transkodierung im Homelab betreiben. …
Die Erstkonfiguration des Docker-Daemons - daemon.json erklärt Die ist die zentrale Konfigurationsdatei für Docker – wer sie kennt, hat volle Kontrolle über das Verhalten des Daemons. Grundstruktur Die Datei muss valides JSON sein. Syntaxfehler verhindern den Start des Daemons. Datenpfad ändern Stan…
Eigene Docker-Registry betreiben - Images intern hosten Mit dem offiziellen -Image lässt sich in wenigen Minuten eine private Docker-Registry betreiben — ohne Docker Hub, ohne externe Abhängigkeiten. Warum eine eigene Registry? Datenschutz: Proprietary Images verlassen das eigene Netzwerk nicht Gesc…
Databasement - Datenbankzugriff per Web-Oberfläche vereinfachen Databasement ist eine selbst gehostete Web-Oberfläche für den Zugriff auf verschiedene Datenbanktypen — ohne lokale Client-Installation und mit rollenbasierter Zugriffskontrolle. Was ist Databasement? Tools wie phpMyAdmin sind auf MySQL…
Lazytainer Pausiert Docker-Container automatisch, wenn kein Netzwerkverkehr mehr ankommt – und startet sie bei Bedarf wieder. Was ist Lazytainer? Lazytainer ist ein leichtgewichtiger Proxy-Container, der andere Container überwacht und bei Inaktivität in den Schlafmodus versetzt. Sobald neue Verbindu…
Docker auf dem Raspberry Pi - ARM-Images und was es zu beachten gibt Der Raspberry Pi ist eine beliebte Plattform für Heimserver und Self-Hosting – Docker läuft darauf gut, wenn man ein paar Besonderheiten kennt. ARM-Architektur verstehen Der Raspberry Pi nutzt ARM-Prozessoren: RPi 2/3 – ARMv7 (32-b…
Capacitarr - Speicherkapazität für Sonarr und Radarr planen Capacitarr analysiert die Medienbibliothek von Sonarr und Radarr und hilft dabei, den zukünftigen Speicherbedarf abzuschätzen und Engpässe rechtzeitig zu erkennen. Was ist Capacitarr? Wer eine große Mediensammlung betreibt, kennt das Proble…
Cron-Jobs in Docker - der richtige Ansatz Wiederkehrende Aufgaben in Docker-Umgebungen lösen viele falsch – ein Cron-Daemon im App-Container ist fast immer die schlechteste Wahl. Anti-Pattern: Cron im App-Container Ein Container soll einen Prozess ausführen. Zwei Prozesse (App + crond) in einem Cont…
Dock-Deploy - Anwendungen per Web-Oberfläche deployen Dock-Deploy ist ein leichtgewichtiges Web-Dashboard, das das Starten, Stoppen und Aktualisieren von Docker-Compose-Stacks über eine grafische Oberfläche ermöglicht. Was ist Dock-Deploy? Dock-Deploy richtet sich an Homelab-Betreiber und kleine Tea…
Zeitreihen-Stack aufsetzen - InfluxDB und Grafana mit Docker InfluxDB als Zeitreihendatenbank, Grafana für Dashboards — in wenigen Minuten steht ein vollständiges Monitoring-System. Was wir bauen InfluxDB 2: Speichert Metriken als Zeitreihen Grafana: Visualisiert die Daten in Dashboards Telegraf: Sa…
Container Census - laufende Docker-Container inventarisieren Container Census erstellt automatisch ein aktuelles Inventar aller laufenden Docker-Container auf einem oder mehreren Hosts. Was ist Container Census? Container Census liest die Docker-API aus und erstellt eine strukturierte Übersicht alle…
Docker Desktop vs Docker Engine - was man wirklich braucht Docker Desktop und Docker Engine sind zwei sehr unterschiedliche Produkte – die richtige Wahl hängt vom Betriebssystem und Anwendungsfall ab. Docker Engine Docker Engine ist der eigentliche Docker-Daemon – plus CLI. Er läuft nativ auf Linux,…
Docker in Docker - wann DinD wirklich nötig ist CI/CD-Pipelines müssen oft Images bauen — dafür gibt es zwei Ansätze, die sich grundlegend unterscheiden. Die zwei Ansätze 1. Docker in Docker (DinD) Ein Container läuft mit einem eigenen Docker-Daemon im Inneren. Das -Image macht genau das. Problem: g…
Dockpeek - Docker-Logs und Stats im Browser inspizieren Dockpeek ist ein leichtgewichtiges Web-Interface zum Echtzeit-Anzeigen von Docker-Container-Logs und Ressourcenstatistiken direkt im Browser. Was ist Dockpeek? Dockpeek gibt Entwicklern und Homelab-Betreibern eine schnelle, browserbasierte Sich…
Rootless Docker einrichten - Container ohne Root-Rechte betreiben Rootless Docker lässt den Daemon als normaler Benutzer laufen – ein Container-Escape führt so maximal zu einem kompromittierten Benutzeraccount, nicht zum Root-Zugriff. Was Rootless Docker bedeutet Im normalen Betrieb läuft als root u…
Volumes werden nicht gemountet - häufige Konfigurationsfehler in Compose Volume-Probleme in Compose sind tricky, weil kein Fehler geworfen wird – stattdessen entsteht still ein falsches Volume oder ein leerer Mount. Fehler 1: Fehlender Top-Level-volumes-Block Das ist der häufigste Fehler. Ein named …
GPU-Zugriff in Docker-Containern - NVIDIA und Intel einrichten GPU-Zugriff in Docker ermöglicht KI-Inferenz, Video-Transcodierung und Grafikverarbeitung direkt im Container – ohne die GPU manuell zu verwalten. NVIDIA GPUs Voraussetzungen 1. NVIDIA-Treiber auf dem Host installiert ( muss funktioniere…
Log-Rotation für Docker - Festplattenfüller vermeiden Der Standard-Log-Treiber von Docker schreibt Logs unbegrenzt auf die Disk – ohne Konfiguration sind volle Festplatten nur eine Frage der Zeit. Das Problem Docker speichert Container-Logs standardmäßig als JSON unter: Ohne Rotation wächst diese Da…
Container läuft aber der Dienst antwortet nicht - systematische Diagnose zeigt „Up" aber die Anwendung antwortet nicht – hier ist die systematische Vorgehensweise um das Problem zu finden. Schritt 1: Läuft der Container überhaupt? Status „Restarting" bedeutet: Container crasht in einer Schleife. zei…
DNS-Auflösung schlägt im Container fehl - Ursachen und Fixes im Container — das ist ein DNS-Problem, und es hat mehrere mögliche Ursachen. Diagnose resolv.conf im Container prüfen Docker schreibt beim Container-Start eine . Standardmäßig erbt der Container die DNS-Einstellungen des Hosts — wenn der …
Zeitzone im Container richtig setzen - TZ-Variable und Zoneinfo Docker-Container laufen standardmäßig in UTC – wer Logs, Cron-Jobs oder Timestamps in Lokalzeit braucht, muss die Zeitzone explizit setzen. Methode 1: TZ-Umgebungsvariable Die einfachste Methode – funktioniert in den meisten modernen Im…
Docker Doom Doom läuft in einem Docker-Container — weil es geht, und weil es immer irgendwo Doom geben muss. Was ist Docker Doom? Docker Doom ist ein Demo- und Meme-Projekt, das den klassischen First-Person-Shooter Doom (1993) in einem Docker-Container lauffähig macht. Der Container startet ein Choc…
Image lässt sich nicht pullen - Ursachen und Lösungen schlägt fehl — je nach Fehlermeldung ist die Ursache eine andere, und die Lösung auch. Die häufigsten Fehler unauthorized: authentication required Das Image ist privat oder du bist nicht eingeloggt: Nach dem Login erneut pullen. manifest unknown …
Berechtigungsprobleme mit Bind Mounts lösen - UID und GID verstehen „Permission denied" beim Bind Mount ist einer der häufigsten Docker-Anfängerfehler – das Problem ist immer dasselbe: UID-Mismatch zwischen Container und Host. Das Problem verstehen Linux-Berechtigungen basieren auf numerischen User-…
Volume-Daten zwischen Hosts migrieren - Container-Daten umziehen Einen Container von Server A nach Server B umziehen ist einfach – die Daten mitzunehmen erfordert etwas mehr Sorgfalt. Vorbereitung: Container stoppen Immer zuerst den Container stoppen bevor man Daten kopiert. Läuft eine Datenbank wäh…
Container crasht sofort - Exit-Codes verstehen und Fehler beheben Ein Container startet und ist sofort wieder weg — der Exit-Code sagt dir, was schiefgelaufen ist. Exit-Code auslesen Exit-Codes im Detail Exit Code 0 — sauber beendet Der Prozess hat sich selbst regulär beendet. Kein Fehler — aber wen…
Named Volumes verwalten - anlegen, inspizieren und löschen Named Volumes sind die empfohlene Art persistente Daten in Docker zu verwalten – wer weiß wie man sie richtig handhabt, verliert keine Daten. Volume anlegen und verwenden In Compose wird das Volume im -Block der Service-Definition referenzie…
Dockhand - Docker-Container-Lifecycle automatisieren Dockhand ist ein Automatisierungstool für Docker, das Container anhand von Regeln und Zeitplänen automatisch startet, stoppt und aktualisiert. Was ist Dockhand? Dockhand ermöglicht die regelbasierte Automatisierung von Docker-Container-Lebenszykle…
Netzwerkprobleme zwischen Containern debuggen Container im selben Stack können sich gegenseitig nicht erreichen — diese Checkliste führt systematisch zur Ursache. Das häufigste Missverständnis: localhost Innerhalb eines Containers ist der Container selbst — nicht der Host und nicht ein anderer Conta…
Speicherplatz in Docker verwalten - wenn die Festplatte voll ist Docker sammelt still und heimlich Gigabytes an – gestoppte Container, verwaiste Images, vergessene Volumes. Hier ist der systematische Weg raus. Überblick verschaffen Bevor man wild löscht, erstmal schauen was Platz verbraucht: Ausgabe…
Compose Toolbox - Docker-Compose-Dateien validieren und analysieren Die Compose Toolbox ist ein Web-Tool zum Überprüfen, Visualisieren und Analysieren von Docker-Compose-Konfigurationen direkt im Browser. Was ist Compose Toolbox? Compose Toolbox bietet eine grafische Oberfläche, mit der Docker-Compo…
Port already in use - den Konflikt finden und lösen Die Fehlermeldung bedeutet: ein anderer Prozess belegt bereits den gewünschten Port — hier ist, wie man ihn findet und den Konflikt löst. Was genau passiert Wenn Docker einen Container startet und einen Host-Port binden will (z. B. ), prüft das Bet…
Volumes vs Bind Mounts vs tmpfs - was man wann in Docker verwendet Docker bietet drei verschiedene Speichertypen – wer den falschen wählt, hat früher oder später ein Problem. Named Volumes Named Volumes werden vollständig von Docker verwaltet. Docker legt sie unter ab und kümmert sich um Lebenszyklu…
Container startet nicht - systematische Diagnose in Docker Ein Container startet nicht und du weißt nicht warum — diese Schritt-für-Schritt-Diagnose führt dich systematisch zur Ursache. Schritt 1: Container-Status prüfen Der wichtigste Wert ist die Spalte . Ein gestoppter Container zeigt — der Exit-…
dockmon - Docker-Container einfach überwachen dockmon ist ein schlankes Monitoring-Tool für Docker-Container, das den Zustand laufender Container überwacht und bei Ausfällen Benachrichtigungen verschickt. Was ist dockmon? dockmon richtet sich an Homelab-Nutzer und kleine Infrastrukturen, die eine ei…
Netzwerkzugriff von Containern nach außen einschränken Standardmäßig können Container frei ins Internet kommunizieren — das ist für Datenbanken und interne Services oft unnötig und ein Sicherheitsrisiko. Das Standard-Verhalten Jeder Container kann standardmäßig beliebige externe Verbindungen aufbaue…
Docker Compose Maker Ein Browser-Tool, das per Formular eine fertige generiert — ohne manuelles YAML-Schreiben. Was ist Docker Compose Maker? Docker Compose Maker ist ein webbasiertes UI-Tool, das Entwicklern hilft, gültige -Dateien zu erstellen, ohne die YAML-Syntax auswendig zu kennen. Man wählt S…
Images scannen mit Trivy - Schwachstellen in Docker-Images finden Trivy scannt Docker-Images auf bekannte Sicherheitslücken in OS-Paketen und Anwendungsabhängigkeiten — und lässt sich einfach in CI-Pipelines integrieren. Installation Grundnutzung Typische Ausgabe: Auf kritische Schwachstellen fokuss…
docker-avocent - KVM-Konsolen und Avocent-Switches per Docker verwalten docker-avocent stellt eine containerisierte Umgebung bereit, um auf Avocent KVM-Switches und serielle Konsolen ohne natives Java-Plugin zuzugreifen. Was ist docker-avocent? Avocent KVM-Switches und ihre Verwaltungssoftware setze…
Den Docker-Socket absichern - das unterschätzte Sicherheitsrisiko Der Docker-Socket ist effektiv ein root-Shell auf dem Host — wer ihn in einen Container mountet, gibt diesem Container vollen Host-Zugriff. Warum der Socket so mächtig ist Wer den Docker-Socket hat, kann: Neue Container starten (auch …
Linux Capabilities in Docker begrenzen - cap-drop und cap-add Docker-Container laufen mit einem reduzierten, aber immer noch signifikanten Set an Linux-Capabilities — wer wirklich absichern will, muss aktiv kürzen. Was sind Linux Capabilities? Linux teilt Root-Privilegien in granulare Einheiten auf.…
Docker Funbox Eine Sammlung unterhaltsamer und demonstrativer Docker-Container — ideal zum Ausprobieren und Herumspielen. Was ist Docker Funbox? Docker Funbox ist kein einzelnes Image, sondern ein Konzept: eine kuratierte Auswahl aus kleinen, unkomplizierten Docker-Containern, die keinen produktiven…
Read-only Container-Filesystem - und wo man dann doch schreiben muss Ein Read-only-Filesystem zwingt zur expliziten Entscheidung, wo Daten persistiert werden — und reduziert nebenbei die Angriffsfläche. Das Grundprinzip Der Container kann jetzt nichts mehr in sein Filesystem schreiben. Jeder Schreib…
Container nicht als root betreiben - USER im Dockerfile setzen Standardmäßig laufen Container-Prozesse als root (UID 0) — das ist unnötig und vergößert die Angriffsfläche erheblich. Das Problem Ein Prozess als root im Container bedeutet: Wenn der Prozess kompromittiert wird, hat der Angreifer root-R…
docker compose up vs docker compose run - der Unterschied und klingen ähnlich, verfolgen aber grundlegend verschiedene Ziele — der falsche Befehl in einem Migrations-Script kostet Zeit und Nerven. docker compose up Startet alle Services und hält sie am Laufen: Startet alle Services mit ihren Abhängi…
Netzwerkisolation zwischen Compose-Stacks - Dienste gezielt absichern Jeder Container, der im selben Docker-Netzwerk ist, kann alle anderen Container in diesem Netzwerk direkt ansprechen — das ist oft mehr Zugriff als nötig. Das Standard-Verhalten Ohne explizite Netzwerk-Konfiguration packt Compose …
Healthchecks in Docker definieren - mehr als nice-to-have Ein Healthcheck meldet Docker, ob ein Container wirklich funktioniert — nicht nur ob er läuft. Das ist die Grundlage für zuverlässige Abhängigkeiten und automatische Selbstheilung. Healthcheck im Dockerfile Optionen: | Option | Bedeutung | De…
Container benennen und mit Labels strukturieren Zufällige Container-Namen wie mögen amüsant sein — in produktiven Umgebungen braucht man vorhersehbare Namen und strukturierte Metadaten. Container benennen Ein expliziter Name hat direkte Vorteile: In Compose wird der Name automatisch aus Projektname …
Docker aufräumen - Images, Container, Volumes und Netzwerke mit prune bereinigen Docker sammelt still und leise nicht mehr gebrauchte Images, gestoppte Container und verwaiste Volumes an — bis die Disk voll ist. Warum die Disk voll wird Jedes erzeugt Zwischen-Layer. Jedes einer neuen Version lässt d…
docker inspect - alles über einen Container oder ein Image wissen gibt vollständige Metadaten als JSON aus — was in oder nicht sichtbar ist, steht hier. Grundnutzung Die Ausgabe ist immer ein JSON-Array — auch bei einem einzelnen Objekt. Gezielt mit --format extrahieren Das vollständige JSON ist rie…
Kasm Workspaces - Desktop-Streaming und Browser-Isolation im Container Kasm Workspaces streamt vollständige Desktop-Umgebungen und Browser-Instanzen direkt in den Browser des Nutzers. Was ist Kasm Workspaces? Kasm Workspaces ist eine Container-basierte Streaming-Plattform, die Desktop-Anwendungen, B…
docker stats - Ressourcenverbrauch von Containern in Echtzeit überwachen zeigt in Echtzeit, was jeder Container gerade verbraucht — der schnellste Weg, um einen auffälligen Container zu finden. Grundnutzung Die Spalten erklärt | Spalte | Bedeutung | |---|---| | CPU % | CPU-Anteil relativ zu allen Ke…
Jlesage Firefox - Firefox vollständig im Docker-Container ausführen Das jlesage/firefox-Image führt einen vollständigen Firefox-Browser im Docker-Container aus und macht ihn über einen integrierten VNC/noVNC-Webserver im Browser bedienbar. Was ist jlesage/firefox? Manchmal ist es sinnvoll, einen Bro…
Secrets in Docker Compose richtig übergeben - nicht als Umgebungsvariable Umgebungsvariablen für Secrets wirken bequem — sind aber ein bekanntes Sicherheitsproblem, das sich mit wenig Aufwand vermeiden lässt. Warum ENV-Vars für Secrets problematisch sind Außerdem erben alle Kindprozesse im Container…
Container-Logs lesen, filtern und weiterleiten ist der schnellste Weg zu Container-Ausgaben — aber ohne Konfiguration füllt die Standard-Log-Rotation früher oder später die Disk. Grundbefehle Kombiniert: Logs in Compose Log-Driver: das eigentliche Problem Standardmäßig nutzt Docker den -Driver: Logs…
docker-autocompose Generiert automatisch eine aus bereits laufenden Docker-Containern — Reverse Engineering für dein Setup. Was ist docker-autocompose? docker-autocompose (red5d/docker-autocompose) liest die Konfiguration laufender Container aus der Docker-API aus und erzeugt daraus eine vollständig…
Gemeinsame Netzwerke zwischen Compose-Stacks - Container aus verschiedenen Projekten verbinden Wenn zwei separate Compose-Stacks miteinander kommunizieren sollen, braucht man ein externes Netzwerk — das Standard-Netzwerk jedes Projekts ist isoliert. Das Problem Jeder Compose-Stack bekommt automatisc…
Gluetun - VPN-Client-Container mit Kill-Switch für alle Dienste Gluetun ist ein Docker-Container, der eine VPN-Verbindung aufbaut und anderen Containern als Netzwerk-Gateway dient — mit eingebautem Kill-Switch, der den Datenverkehr bei VPN-Abbruch sofort blockiert. Was ist Gluetun? Gluetun löst ein …
docker exec - in laufende Container schauen und Befehle ausführen ist das wichtigste Werkzeug zur Fehlersuche — damit lassen sich Befehle in laufenden Containern ausführen, ohne sie neu zu starten. Interaktive Shell öffnen hält stdin offen, allokiert ein Pseudo-Terminal. Beide Flags zusammen geben e…
Traefik als Reverse Proxy mit Docker - Labels statt Konfigurationsdateien Traefik erkennt Docker-Container automatisch über Labels und konfiguriert sich selbst — kein Nginx-Reload, keine statischen Configs. Wie Traefik mit Docker funktioniert Traefik hört auf den Docker-Socket und liest Labels von l…
Container-Ressourcen begrenzen - RAM und CPU-Limits setzen Ohne Ressourcen-Limits kann ein einziger Container den Host lahmlegen — RAM und CPU-Limits sind kein Luxus, sondern Pflicht. Das Problem Standardmäßig darf jeder Container beliebig viel RAM und CPU des Hosts verbrauchen. Eine Memory-Leak-App…
Docker hinter einem Reverse Proxy - Grundprinzip und häufige Fehler Ein Reverse Proxy vor Docker-Containern ist das Standardmuster für Produktionsumgebungen — hier ist warum und wie man die typischen Fehler vermeidet. Warum ein Reverse Proxy? Ohne Proxy müsste jeder Dienst auf einem eigenen Port lau…
Jlesage GUI-Apps - GUI-Anwendungen per noVNC im Browser nutzen Das jlesage/baseimage-gui-Image ist das Fundament für Docker-Container, die grafische Desktop-Anwendungen über einen integrierten noVNC-Webserver zugänglich machen. Was ist jlesage/baseimage-gui? jlesage hat eine Basis-Image-Familie entw…
Restart-Policies in Docker - always, unless-stopped und on-failure im Vergleich Die Restart-Policy entscheidet, ob ein Container nach einem Absturz oder Neustart des Hosts wieder hochkommt — eine unterschätzte Konfigurationsoption. Die vier Policies im Überblick | Policy | Neustart bei Absturz | Neu…
Compose-Profile - Dienste situationsabhängig ein- und ausblenden Mit Profilen lässt sich steuern, welche Dienste bei welchem Aufruf gestartet werden — ohne mehrere Compose-Dateien zu pflegen. Grundkonzept Dienste ohne starten immer. Dienste mit starten nur, wenn das passende Profil aktiv ist: Profil…
ngrep Netzwerk-Grep-Tool im Docker-Container — Pakete nach Mustern filtern und inspizieren. Was ist ngrep? ngrep ist ein Kommandozeilen-Tool, das Netzwerkpakete in Echtzeit erfasst und wie grep nach regulären Ausdrücken filtert. Es zeigt den Payload von TCP-, UDP- und ICMP-Paketen leserlich an und e…
Dozzle - Docker-Logs in Echtzeit im Browser beobachten Dozzle ist ein leichtgewichtiger Log-Viewer für Docker-Container, der Logs in Echtzeit im Browser anzeigt – ohne Datenbank, ohne Konfiguration. Was ist Dozzle? Dozzle verbindet sich über den Docker-Socket mit dem lokalen Docker-Daemon und stellt…
Mehrere Compose-Dateien kombinieren - das Override-Pattern Docker Compose kann mehrere Dateien zusammenführen — das ermöglicht saubere Trennung zwischen Basis-Konfiguration und umgebungsspezifischen Anpassungen. Das automatische Override Wenn im selben Verzeichnis eine liegt, lädt Compose sie automa…
CapRover Self-hosted PaaS auf Docker-Swarm-Basis — einfaches App-Deployment ohne DevOps-Kenntnisse. Was ist CapRover? CapRover ist eine kostenlose, quelloffene Platform-as-a-Service-Lösung, die Docker Swarm als Unterbau nutzt. Es bietet ein Web-Dashboard und eine CLI, über die Anwendungen mit einem …
Umgebungsvariablen in Docker Compose - env_file und environment richtig einsetzen Docker Compose bietet zwei Wege, Umgebungsvariablen an Container zu übergeben — und einen dritten, der oft verwechselt wird. Variante 1: environment (inline) Direkt im Compose-File, gut für wenige, nicht-geheime Werte:…
dockercraft - Docker-Container als Minecraft-Welt visualisieren Dockercraft verwandelt laufende Docker-Container in eine interaktive Minecraft-Welt, in der jeder Container als Gebäude dargestellt wird. Was ist dockercraft? Dockercraft ist ein Proof-of-Concept-Projekt, das die Docker-API abfragt und …
depends_on und Healthchecks in Compose - Container in der richtigen Reihenfolge starten allein reicht nicht — wer wirklich auf einen fertigen Dienst warten will, braucht Healthchecks. Das Problem mit bloßem depends_on Ein klassischer Fehler: Die App startet, die Datenbank ist noch nicht bereit, die …
Macvlan in Docker - Container direkt im Heimnetz mit eigener IP Manchmal soll ein Container nicht hinter einem Port-Mapping versteckt sein, sondern wie ein normales Gerät im Netzwerk erscheinen — mit eigener IP-Adresse, die andere Geräte direkt ansprechen können. Dafür gibt es Macvlan. Was Macvlan m…
Die Grundstruktur einer docker-compose.yml - was wirklich reingehört Eine zu schreiben ist schnell getan — aber viele Beispiele im Netz enthalten veraltete Felder, fehlende Konfiguration und häufige Fallen. Hier ist was tatsächlich in eine moderne Compose-Datei gehört. Minimales, funktionsfähiges Be…
Host-Networking in Docker - wann es Sinn macht und wann nicht Mit teilt sich ein Container den Netzwerk-Stack des Hosts direkt — kein Bridge-Netzwerk, keine Port-Übersetzung. Das hat spezifische Anwendungsfälle, aber auch klare Grenzen. Was Host-Networking bewirkt Normalerweise bekommt jeder Contain…
tcpdump Klassisches Netzwerk-Analyse-Tool tcpdump als Docker-Container für schnelle Paketmitschnitte. Was ist tcpdump? tcpdump ist das bewährteste Kommandozeilen-Tool für Netzwerk-Paketmitschnitte unter Linux. Es erfasst Pakete auf einem Netzwerkinterface und zeigt sie entweder in Echtzeit an oder s…
Backup-Strategie für Docker-Volumes - Daten sichern die im Container leben Container sind ephemer — die Daten darin sollten es nicht sein. Wer auf Backups von Docker-Volumes verzichtet, verliert bei einem Fehler alles. Wo liegen Volume-Daten? Named Volumes werden von Docker unter gespeichert: Man kö…
Den Benutzer zur docker-Gruppe hinzufügen - und warum das eine Sicherheitsentscheidung ist Ohne weitere Konfiguration erfordert jeder Docker-Befehl . Der schnelle Fix: Benutzer zur -Gruppe hinzufügen. Das ist bequem — aber keine neutrale technische Entscheidung. Die Befehle Nach einem Logout/Login i…
Eigene Images in einer privaten Registry ablegen Docker Hub ist die einfachste Option für Images — aber nicht immer die richtige. Rate Limits, private Code-Basis und Datenschutzanforderungen sprechen oft für eine eigene Registry. Warum eine private Registry? Docker Hub hat für kostenlose Accounts Pu…
Images für ARM und AMD64 bauen - Docker Buildx und Multi-Platform Raspberry Pi, Apple Silicon (M1/M2/M3), AWS Graviton — ARM-basierte Systeme sind keine Ausnahme mehr. Ein Image für mehrere Plattformen zu bauen ist mit einfacher als man denkt. Warum das relevant ist Ein Image, das auf AMD64 (x86_64)…
Dockerfile Best Practices - was wirklich zählt Es gibt viele Ratschläge für Dockerfiles — dieser Artikel fokussiert auf die Punkte, die in der Praxis tatsächlich einen Unterschied machen. 1. Spezifische Basis-Image-Tags pinnen ist kein Version — bei einem kann Breaking Change kommen. Exakte Tags mac…
Glances - Systemauslastung im Browser überwachen Glances ist ein in Python geschriebenes System-Monitoring-Tool, das CPU, RAM, Festplatten, Netzwerk und laufende Prozesse übersichtlich im Browser oder Terminal anzeigt. Was ist Glances? Glances kombiniert die Stärken klassischer Unix-Tools wie und mi…
Layer-Cache gezielt nutzen - Docker-Builds beschleunigen Der Layer-Cache ist einer der größten Vorteile von Docker-Builds. Wer das Dockerfile falsch strukturiert, verliert ihn bei jeder Änderung — und wartet unnötig. Wie der Cache funktioniert Docker prüft beim Build jeden Layer: Hat sich die Instru…
Warum Docker-Images so groß werden - und was dagegen hilft Ein 2-GB-Image für eine Node.js-App ist kein Ausnahmefall — es ist das Ergebnis von mehreren kleinen Entscheidungen, die sich addieren. Die häufigsten Ursachen und ihre Lösungen. Ursache 1: Falsches Basis-Image Das richtige Basis-Image zu wä…
Alpine vs Debian als Basis-Image - die richtige Wahl treffen Die Wahl des Basis-Images beeinflusst Image-Größe, Kompatibilität, Debugging-Komfort und manchmal das Laufzeitverhalten. Es gibt keine universelle Antwort — aber klare Kriterien. Alpine Linux Alpine basiert auf statt der üblichen und verwe…
Dokku - Mini-PaaS für eigene App-Deployments Dokku ist ein selbstgehostetes Mini-PaaS, das Apps per deployt und dabei Buildpacks, Plugins und automatisches SSL unterstützt. Was ist Dokku? Dokku implementiert das Heroku-Deployment-Modell auf dem eigenen Server: Ein löst automatisch den Build-Prozess …
Multi-Stage Builds - Docker-Images drastisch verkleinern Build-Tools, Compiler und Testframeworks braucht man zum Bauen einer Anwendung — aber nicht zum Ausführen. Multi-Stage Builds trennen beides sauber voneinander. Das Problem: aufgeblähte Images Ein naiver Ansatz packt alles in ein Image: Result…
Image-Tags - warum latest keine Versionierung ist klingt nach dem aktuellen, stabilen Stand. In Wirklichkeit ist nur ein Label — und ein gefährliches dazu. Was Tags wirklich sind Tags sind einfache Zeiger auf einen bestimmten Image-Digest. Sie sind veränderlich: Wer ausführt, verschiebt den -Tag auf…
dockerignore richtig nutzen - was nicht ins Image gehört ist eine der unterschätztesten Optimierungen beim Docker-Build — sie hält unnötige Dateien aus dem Image heraus und beschleunigt den Build-Prozess messbar. Was ist der Build-Kontext? Wenn man ausführt, sendet Docker den gesamten Inhalt des ang…
Drone - CI-CD-Pipelines mit Docker automatisieren Drone ist ein selbstgehostetes, container-natives CI/CD-System, das Pipelines als YAML-Dateien im Repository definiert und in Docker-Containern ausführt. Was ist Drone? Drone verfolgt einen „Pipeline as Code"-Ansatz: Jede -Datei im Git-Repository bes…
ARG vs ENV im Dockerfile - Build-Zeit gegen Laufzeit und werden beide im Dockerfile definiert — aber sie leben in unterschiedlichen Phasen. Das zu verwechseln führt zu Builds, die sich nicht wie erwartet verhalten. ARG: nur während des Builds definiert eine Variable, die ausschließlich während exist…
COPY vs ADD im Dockerfile - wann man was verwenden sollte und kopieren beide Dateien in das Image — aber sie sind nicht austauschbar. Die Wahl zwischen den beiden ist eine Frage der Transparenz. COPY: das klare Werkzeug tut genau eine Sache: Dateien oder Verzeichnisse vom Build-Kontext ins Image kop…
CMD vs ENTRYPOINT - den Unterschied im Dockerfile verstehen und sehen auf den ersten Blick ähnlich aus — beide legen fest, was beim Container-Start ausgeführt wird. Der Unterschied liegt darin, was sich zur Laufzeit noch überschreiben lässt. ENTRYPOINT: das Executable definiert den Hauptprozess des …
Container-Lebenszyklus - created, running, paused, exited verstehen Ein Container durchläuft verschiedene Zustände. Wer die Übergänge kennt, versteht warum manchmal leer ist, obwohl Container "da sein sollten". Die Zustände | Zustand | Bedeutung | |---|---| | | Container angelegt, aber noch nicht ge…
Docker Compose v2 - Plugin vs standalone und was heute gilt Wer länger mit Docker arbeitet, kennt — mit Bindestrich. Neuere Installationen haben — ohne Bindestrich. Das ist kein Zufall, sondern ein Versionssprung mit Konsequenzen. Die Geschichte Docker Compose v1 war ein eigenständiges Python-Progra…
Docker auf einem VPS einrichten - was nach der Installation sofort zu tun ist Docker ist installiert — aber ein frischer VPS mit Docker ist noch kein produktionsreifes Setup. Hier sind die Schritte, die unmittelbar nach der Installation folgen sollten. 1. Benutzer zur docker-Gruppe hinzufügen Damit …
Was passiert beim docker run - Schritt für Schritt erklärt — drei Worte, aber dahinter steckt eine ganze Kette von Schritten. Wer versteht, was Docker intern tut, debuggt Probleme schneller und trifft bessere Entscheidungen bei Konfiguration und Flags. Die Schritte im Detail 1. Lokalen Image-Cache p…
Das Layer-System - wie Docker-Images intern aufgebaut sind Docker-Images sind keine monolithischen Blöcke — sie bestehen aus übereinanderliegenden, unveränderlichen Schichten. Das Layer-System ist der Grund, warum Docker-Builds schnell sind und warum mehrere Images sich denselben Speicher teilen kön…
Docker-Architektur - Client, Daemon und Registry erklärt Hinter jedem steckt mehr als ein einzelner Prozess — Docker ist ein Client-Server-System mit drei klar getrennten Komponenten. Die drei Komponenten 1. Docker Client (CLI) Der Docker Client ist das, womit man täglich interagiert: das -Kommando …
Images und Container - der Unterschied den jeder kennen sollte Ein Image und ein Container sind zwei grundverschiedene Dinge — wer das nicht versteht, kämpft früher oder später gegen Probleme, die eigentlich keine sein müssten. Das Image: der Blueprint Ein Docker-Image ist eine unveränderliche, schr…
Docker auf Ubuntu und Debian installieren - der richtige Weg Docker lässt sich auf mehreren Wegen installieren — dieser Artikel zeigt den einzig empfehlenswerten für Produktivserver: über das offizielle apt-Repository. Warum nicht das Convenience-Script Docker stellt ein Installationsscript bereit (…