DEVOPS / DOCKER

Docker für Einsteiger – was sie dir nicht sagen

Docker ist toll. Wirklich. Reproduzierbare Umgebungen, keine "läuft bei mir"-Diskussionen, saubere Isolation. Ich mein das nicht sarkastisch. Aber die offiziellen Tutorials lassen ein paar Dinge aus die man dann im echten Leben auf die harte Tour lernt.

Volume-Mounts und ihre Tücken

Der häufigste Anfängerfehler: man mounted ein Verzeichnis in den Container und wundert sich warum Änderungen im Container auch außerhalb erscheinen – oder umgekehrt warum sie's nicht tun. Bind Mounts und named Volumes verhalten sich unterschiedlich. Ein named Volume wird von Docker verwaltet, ein Bind Mount zeigt direkt auf dein Dateisystem. Klingt offensichtlich wenn man's weiß.

# named Volume – Docker verwaltet das volumes: mydata: services: app: volumes: - mydata:/app/data # Bind Mount – zeigt auf dein lokales Verzeichnis volumes: - ./data:/app/data

docker-compose down -v – das gefährlichste Kommando

Das -v Flag löscht alle named Volumes die mit dem Compose-Projekt assoziiert sind. Inklusive Datenbankdaten. Inklusive allem was du nicht woanders gesichert hast. Ich hab das einmal in einer Produktionsumgebung gesehen – nicht von mir, aber von jemandem der dachte er räumt nur auf. War kein schöner Nachmittag.

.env-Dateien und was damit passiert

Docker Compose liest automatisch eine .env-Datei im gleichen Verzeichnis – aber nur für Variable-Substitution in der compose.yml, nicht automatisch als Container-Environment. Das sind zwei verschiedene Dinge. Wenn du Variablen im Container haben willst, musst du env_file oder environment explizit setzen. Und die .env-Datei gehört in .gitignore. Immer.

Das sind die Basics die ich gerne früher gewusst hätte. Dank an alle Stackoverflow-Antworten aus 2017 die mir damals geholfen haben und seitdem drei Versionen veraltet sind.


← zurück zu Archiv   📂 Archiv