Ich habe ein Bild in Amazon Elastic Container Registry (ECR), das ich als Docker-Dienst in meinem Docker-Einzelknoten-Schwarm bereitstellen möchte. Momentan läuft auf dem Dienst eine ältere Version des latest
-Tags des Bildes, aber ich habe seitdem eine neuere Version des latest
-Tags auf ECR hochgeladen.
Das Ausführen von docker service update --force my_service
auf meinem Schwarmknoten, der image XXXXXXXXXXXX.dkr.ecr.us-east-1.amazonaws.com/my_service:latest
verwendet, führt zu:
image XXXXXXXXXXXX.dkr.ecr.us-east-1.amazonaws.com/my_service:latest konnte nicht auf eine Registrierung zugegriffen werden, um seinen Digest aufzuzeichnen. Jeder Knoten greift unabhängig auf XXXXXXXXXXXXX.dkr.ecr.us-east-1.amazonaws.com/my_service:latest zu, möglicherweise zu verschiedenen Knoten führt unterschiedliche Versionen des Bildes.
Dies scheint zu verhindern, dass der Knoten eine neue Kopie des latest
-Tags aus der Registrierung zieht und der Dienst ordnungsgemäß aktualisiert wird.
Ich bin ordnungsgemäß mit docker login
an ECR angemeldet, und die Ausführung von docker pull XXXXXXXXXXXX.dkr.ecr.us-east-1.amazonaws.com/my_service:latest
funktioniert einwandfrei (und gibt einen Digest zurück).
Warum kann docker service update
den Auszug nicht aus der ECR-Registrierung lesen, obwohl das Bild verfügbar ist?
Ich hatte das gleiche Problem, aber ich löste es mit --with-registry-auth
.
Nachdem Sie sich mit docker login
angemeldet haben, können Sie den gleichen Update-Befehl mit --with-registry-auth
bestätigen?
Tags und Links amazon-web-services docker docker-swarm