Docker Compose 5.5: native Init-Container, pull_policy-Aktualisierungsfenster und Digest-Abgleich
Die neuesten Versionen von Docker Compose (5.3-5.5.1) führen native Container-Init, eine intelligentere Verwaltung von Bildaktualisierungen und einen Abgleich von Digests ein, der unnötige Neustarts reduziert: Das ändert sich für diejenigen, die containerisierte Umgebungen verwalten.
Wer Linux-Server mit containerisierten Anwendungen verwaltet, hat Docker Compose wahrscheinlich bereits getroffen: das Tool, das es ermöglicht, alle Dienste, aus denen eine Anwendung besteht (Datenbank, Backend, Reverse-Proxy, Cache), in einer einzigen YAML-Datei zu beschreiben und mit nur einem Befehl zu starten. In den letzten Monaten hat das Projekt eine Reihe von Updates veröffentlicht (von Version 5.3 vom Juli 2026 bis 5.5.1 von Anfang September), die einige sehr beliebte Funktionen aus der Gemeinschaft der Systemadministratoren vorstellen: die sogenanntenInit-BehälterNatives, eine verfeinerte Verwaltung von Bild-Updates durch♪und einerAbgleich von DigestionenDadurch werden unnötige Neustarts des Containers vermieden. Lassen Sie uns im Detail sehen, welche Änderungen und wie diese Neuheiten sicher zu nutzen.
Was ist ein Container Init und warum es dient
AInit-Behälter(Initialisierungscontainer) ist ein kleiner Container, der vor dem eigentlichen Dienst ausgeführt wird, um Voroperationen durchzuführen: die Migrationen einer Datenbank anwenden, Konfigurationsdateien herunterladen, die richtigen Berechtigungen in einem freigegebenen Ordner festlegen, warten, bis eine Sucht bereit ist. Vor der Version 5.3 von Docker Compose (veröffentlicht am 2. Juli 2026) mussten Administratoren auf indirekte Lösungen zurückgreifen, wie "Use and Throw" -Dienste, die in der Datei beiseite gelegt wurden. docker-compose.ymlund verbunden überdepends_onoder Shell-Scripts, die vor dem Booten manuell ausgeführt werden.
Mit der Einführung des nativen Supports werden init-Container durch die neue Richtlinie direkt im Service konfiguriertpre_startJeder Schritt aufgeführt inpre_startin einem temporären Container unmittelbar nach der Erstellung des Hauptdienstes, aber vor seinem eigentlichen Start ausgeführt wird; wenn ein Schritt mit einem anderen Exit-Code von Null endet, verlässt der Dienst nicht, wodurch vermieden wird, dass eine Anwendung in einem inkohärenten Zustand startet (z. B. mit einer noch nicht aktualisierten Datenbank).
Ein praktisches Beispiel verdeutlicht die Operation besser:
services:
app:
image: myapp:latest
user: "1000:1000"
volumes:
- data:/data
depends_on:
db:
condition: service_healthy
pre_start:
- command: ["./manage.py", "migrate"]
- image: busybox
user: root
command: sh -c 'chown -R 1000:1000 /data'
db:
image: postgres:18
healthcheck:
test: ["CMD-SHELL", "pg_isready"]
volumes:
data:
In diesem Beispiel vor dem DienstappEs werden zwei Schritte hintereinander durchgeführt: die Migration der Datenbank durch den Anwendungsbefehl selbst und die Korrektur von Berechtigungen im freigegebenen Ordner./datamit minimalem BildbusyboxWenn Sie kein anderes Bild angeben, erbt jeder Schritt standardmäßig das Bild des Hauptdienstes; alle Schritte teilen sich auch die gleichen Netzwerke und die gleichen Volumes des Dienstes, dann sind die während der Initialisierung vorbereiteten Dateien sofort für den endgültigen Container sichtbar. Ein nützliches Detail für diejenigen, die Umgebungen mit begrenzten Ressourcen verwalten: ein Schrittpre_startdas sich gegenüber der vorherigen Ausführung nicht verändert hat und das bereits gut beendet ist, wird in aufeinanderfolgenden Ausführung automatisch gesprungen.
Pull Policy: Intelligentere Image-Updates
Die Richtliniepull_policyexistiert seit langem in Docker Compose und erlaubt zu überprüfen, wann ein Bild erneut aus dem Register heruntergeladen werden muss: Die gängigsten Werte sindimmer(Immer die neueste Version herunterladen),Fehlendes Fehlen(Download nur, wenn das Bild nicht lokal vorhanden ist),♪(nie herunterladen, nützlich in isolierten Umgebungen) undBauwerk(konstruiert das Bild lokal, anstatt es herunterzuladen). Mit Version 5.5.0, veröffentlicht am 17. August 2026, wird der Befehlcompose pullist sich der Zeit bewusster geworden, die das letzte Update aufgewendet hat: Es respektiert konfigurierbare Aktualisierungsfenster (z. B. täglich, wöchentlich oder jede N-Ausführungen), wodurch eine unnötige Wiederverbindung der Fernregistrierung vermieden wird, wenn das Bild bereits kürzlich verifiziert wurde. Für einen Administrator, der Dutzende Container auf mehreren Servern verwaltet, führt dies zu weniger Netzwerkverkehr, der durch automatische Steuerungen generiert wird, und zu vorhersehbareren Bereitstellungszeiten, insbesondere wenn Updates durch eine Automatisierungspipeline oder einen geplanten Cron-Auftrag gestartet werden.
Versöhnung von Digests: weniger unnötige Neustarts
Auch in Version 5.5.0 wurde ein neuer Mechanismus eingeführtAbgleich der Bilder verdautZusammenfassend vergleicht Docker Compose nun den Digest (den einzigartigen Footprint) des von einem Container tatsächlich verwendeten Bildes genauer mit dem des neuesten verfügbaren Bildes, wodurch vermieden wird, einen Container neu zu erstellen, wenn in Wirklichkeit keine wesentlichen Änderungen vorgenommen werden müssen. Wer mit Docker arbeitet, weiß, wie ärgerlich es ist, einen Service-Neustart ohne ersichtlichen Grund während einer einfachendocker compose upDiese Änderung reduziert diese Art von unnötigen Unterbrechungen. Aber es ist gut zu wissen, dass, wie in offiziellen Release Notes berichtet,Das erste Maldass Sie durchführencompose upNach dem Upgrade auf diese Version können einige vorhandene Container noch neu erstellt werden, da Digests einmal mit der neuen Logik neu bewertet werden. Es ist daher ratsam, diesen ersten Neustart in einem Wartungsfenster zu planen, insbesondere für Produktionsdienstleistungen.
Die anderen Nachrichten von 5.5.1
Die neueste Version, 5.5.1 (3. September 2026), konzentriert sich hauptsächlich auf kleinere, aber nützliche Verbesserungen beim Debugging:Hook für Lebensläufe(die Befehle, die automatisch beim Start oder Herunterfahren eines Dienstes ausgeführt werden) erfassen und zeigen nun ihre Ausgabe direkt im Terminal an, was die Diagnose vereinfacht, wenn in diesen Phasen etwas schief geht. OpenTelemetry-Tracking-Fehler wurden auch bei Verwendung des Flags verbessert--debug, nützlich für diejenigen, die Compose in komplexere Beobachtbarkeitsumgebungen integrieren. Unter den Bugfixes berichten wir auch über ein besseres Synchronisationsmanagement von verknüpften Verzeichnissen (Funktion)watch) und eine stärkere Unterstützung für IPAM-Optionen bei der Erstellung von Netzwerken.
So aktualisieren Sie Docker Compose sicher
Vor dem Upgrade ist es gut, die aktuell installierte Version mit dem Befehl zu überprüfendocker compose versionAuf den meisten Linux-Distributionen wird Docker Compose als Plugin des Docker-Clients installiert und mit dem Paket aktualisiertdocker-compose-pluginüber Systempaketmanager (z.B.)apt update && apt upgrade docker-compose-pluginDebian und Ubuntu. Alternativ können diejenigen, die das Plugin manuell installiert haben, den neuesten Track direkt von der offiziellen Release-Seite auf GitHub herunterladen.
Einige praktische Vorschläge für diejenigen, die Server in der Produktion verwalten:
Testen Sie zuerst in einer Staging-Umgebung.Wie gesehen, kann der neue Mechanismus der Versöhnung des Verdauungsvorgangs die Wiederherstellung eines Behälters beim ersten Start nach dem Update bewirken: Entdecken Sie ihn besser in einer unkritischen Umgebung.
Lesen Sie immer offizielle Release Notesvor dem Upgrade auf die Produktion, um zu sehen, ob sich Verhaltensänderungen auf Ihre Dateien auswirkendocker-compose.yml.
Verwenden Sie den Init Containerum bereits verwendete externe Initialisierungsskripte zu ersetzen: Neben der Vereinfachung der Wartung wird das Anwendungsverhalten berechenbarer und direkt in der Konfigurationsdatei dokumentiert.
Bewerten Sie Pull Policy Update Fensterwenn Sie viele Hosts verwalten und die Belastung der privaten Docker-Logs reduzieren möchten.
Insgesamt bestätigen diese Neuerungen einen klaren Trend in der Entwicklung von Docker Compose: Er eignet sich zunehmend für reale Produktionsszenarien, reduziert den Bedarf an externen Skripten und verbessert die Vorhersagbarkeit von Updates, zwei Aspekte, die besonders von denen geschätzt werden, die Linux-Systeme täglich verwalten.
Offizielle Quellen
Offizielle Release Notes von Docker Compose auf GitHub
Offizielle Docker Dokumentation: Verwenden Sie init Container in Compose
Offizielle Docker Dokumentation: docker compose pull
Teilen
Was ist Ihre Reaktion?
Gefällt mir
0
Gefällt mir nicht
0
Liebe
0
Lustig
0
Wütend
0
Traurig
0
Wow
0