2017-08-17 2 views
1

Ich habe Probleme beim Ziehen von Docker-Images von AWS ECR beim Bereitstellen eines Stacks für meinen Docker-Schwarmcluster, der in AWS EC2 ausgeführt wird.docker swarm und aws ecr-authentifizierung mit api-schlüssel

Wenn ich versuche, zu einem der Knoten ssh und authentifizieren manuell und ziehen Sie ein Bild von Hand, gibt es keine Probleme

Dies funktioniert:

[email protected] ~ # `aws ecr get-login --no-include-email --region us-west-2 ` 
Login Succeeded 
[email protected] ~ # docker pull *****.dkr.ecr.us-west-2.amazonaws.com/myapp:latest 

jedoch, wenn ich einen Stapel versuchen bereitstellen oder Service:

docker stack deploy --compose-file docker-compose.yml myapp 

Das Bild ist nicht und auf dem Knoten, die ich bereits authentifiziert sowie auf allen anderen Manager/Arbeiter Knoten gefunden werden kann.

Fehler von Docker Service ps myapp:

"No such image: *****.dkr.ecr.us-west-2.amazonaws.com/myapp:latest" 

OS: RHEL 7.3 Docker Version: Docker Version 1.13.1-cs5, bauen 21c42d8

Wer für dieses Problem eine Lösung?

Antwort

2

Versuchen Sie diesen Befehl

docker login -u Username -p password *****.dkr.ecr.us-west-2.amazonaws.com && docker stack deploy --compose-file docker-compose.yml myapp --with-registry-auth 
+0

ich mit oben übereinstimmen. Ich denke @Nerses fehlt der "--with-registry-auth" -Parameter, der für die Registry-Authentifizierung benötigt wird. – vivekyad4v

+0

Aber ich denke, das ist nur mit Docker 17.03 oder höher verfügbar. Könnte 17.05 sein, nicht sicher. Aber es ist nicht da mit Docker 1.13.1 –

+0

@Mohan Shanmugam, danke! Das hat bei mir nicht funktioniert, aber ich habe folgendes versucht, was tatsächlich funktioniert hat. 'aws ecr get-login' & and docker stack deploy --compose-docker docker-compose.yml s --with-registry-auth Bitte beachten Sie, dass ich versuche, nicht Benutzer/Pass dafür zu verwenden, stattdessen würde ich mag den AWS-Schlüssel/das Geheimnis. Aus irgendeinem Grund kann ich die docker-Anmeldemethode nicht verwenden, auch wenn ich den gleichen Benutzer/pass verwende, der dem Schlüssel zugeordnet ist, den ich in ~/.aws/credentials habe. – Nerses