Blog

Die acht Praktiken für Containerized Delivery auf dem Microsoft Stack - PRAXIS 7: Explizites Abhängigkeitsmanagement

Cornell Knulst

Aktualisiert Oktober 21, 2025
2 Minuten

Dieser Beitrag wurde ursprünglich als Artikel im SDN Magazine am13. Oktober2017 veröffentlicht. Im vergangenen Jahr habe ich mehrere Kunden auf ihrem Weg zu Containerized Delivery auf dem Microsoft-Stack unterstützt. In dieser Blogserie möchte ich acht Praktiken vorstellen, die ich beim Einsatz von Docker für die Containerized Delivery auf dem Microsoft-Stack gelernt habe, sowohl in einer Greenfield- als auch in einer Brownfield-Situation. Im siebten Blogpost dieser Serie möchte ich über Explizites Abhängigkeitsmanagement sprechen .

PRAXIS 7: Explizite Verwaltung von Abhängigkeiten

Viele Docker- und Compose-Dateien, die ich gesehen habe, enthalten einen Verweis auf Images, ohne die Version des Images anzugeben, oder mit dem Standard-Tag "latest". Wenn Sie die Version eines Images nicht explizit angeben, kann dies zu unerwartetem Verhalten führen und das ist sehr riskant.

  Docker-Datei ohne Versions-Tag
Docker-Datei ohne Versions-Tag

Der Grund dafür ist, dass jeder Docker-Host seinen eigenen lokalen Docker-Image-Cache hat. Sobald eine Bild-Tag-Kombination in Ihrem lokalen Cache gefunden wird, verbraucht Docker den im Cache gespeicherten Blob beim Start von Docker, anstatt den Blob aus der Container-Registry herunterzuladen. Die Verwendung des "latest"-Tags kann dazu führen, dass Sie eine ältere Version eines Images erhalten als das, was Sie eigentlich wollen. Wie in der Abbildung unten zu sehen ist, führt der Befehl docker run cornellk/test auf Host01 die Version 10.0.01 aus, anstatt das Image Version 10.0.02 aus der Registry herunterzuladen.

Die neueste Tag-Ausgabe
Die neueste Tag-Ausgabe

Sie können dieses Szenario selbst testen, indem Sie das Ergebnis eines Docker-Run- und eines Docker-Pull-Befehls mit einem veralteten Bild im lokalen Cache vergleichen. Wie Sie in der Abbildung unten sehen, lädt docker pull neuere Bildschichten aus der Registry herunter, während docker run einfach einen neuen Container auf der Grundlage des veralteten Cache-Bildes startet.

Docker run vs. Docker pull bei impliziter Versionierung
Docker run vs. Docker pull bei impliziter Versionierung

Die Verwendung des "latest"-Tags macht Ihren Build-and-Release-Prozess nicht wiederholbar. Um dies zu vermeiden, müssen Sie nur explizit angeben, welche Version eines Bildes Sie wünschen.

Mehr aus dieser Serie

Verfasst von

Cornell Knulst

Cornell works for Xpirit, Hilversum, The Netherlands, as a trainer/architect. He is specialized in the domain of Application Lifecycle Management and Continuous Delivery, with a special focus on Microsoft-based technologies.

Contact

Let’s discuss how we can support your journey.