Ich bin neu bei AWS. Ich möchte ein privates Docker-Repository auf einer AWS ECS-Containerinstanz einrichten. Ich habe ein Repository mit dem Namen erstellt name
. Die von AWS angezeigten Beispiel-Push-Befehle funktionieren.
aws ecr get-login --region us-west-2
docker build -t name .
docker tag name:latest ############.dkr.ecr.us-west-2.amazonaws.com/name:latest
docker push ############.dkr.ecr.us-west-2.amazonaws.com/name:latest
Aber mit diesen Befehlen habe ich ein Bild mit dem Namen erstellt und gepusht name
und ich möchte ein Bild mit dem Namen erstellen foo
. Also habe ich die Befehle geändert in:
docker build -t foo .
docker tag foo ###########.dkr.ecr.us-west-2.amazonaws.com/name/foo
docker push ###########.dkr.ecr.us-west-2.amazonaws.com/name/foo
Das sollte funktionieren, tut es aber nicht. Nach einigen Wiederholungsversuchen erhalte ich den Fehler:
The push refers to a repository [###########.dkr.ecr.us-west-2.amazonaws.com/name/foo]
8cc63cf4528f: Retrying in 1 second
...
name unknown: The repository with name 'name/foo' does not exist in the registry with id '############'
Benötigt AWS wirklich ein dediziertes Repository für jedes Image, das ich pushen möchte?
name
odernamespace/name
. Das erste Mal brauchte ich ein paar Versuche, um es herauszufinden. Abschnitt 6d auf docs.aws.amazon.com/AmazonECR/latest/userguide/… impliziert die Einrichtung eines Repositorys für einen Namen / mehrere Tags mit einem Image-Build-Tag vonrepository:latest
Sie müssen für jeden Bildnamen ein Repository erstellen, der Bildname kann jedoch die Form "mycompanyname / helloworld" haben. So erstellen Sie
mycompanyname/app1
,mycompanyname/app2
usw.quelle
Zusätzlich zu der obigen Antwort bin ich heute hier gestoßen, da sich der Anmeldebefehl mit ändert
aws-cli v2
. Das Posten als Antwort könnte anderen helfen. alsaws-cli v1
Anmeldebefehl funktioniert nicht mehr.Um das Bild mit aws-cli v2 an ECR zu senden, benötigen Sie
Dann können Sie bauen und pushen
In der Regel ist ein Image pro Registrierung ein sauberer Ansatz. Aus diesem Grund erhöht AWS das Image pro Repository und Repository pro Region von 1000 auf 10.000.
quelle
Ich habe die folgenden Schritte ausprobiert und bestätigt, für mich zu arbeiten:
aws ecr get-login-password --region us-west-2 | Docker-Login - Benutzername AWS --password-stdin xxxxxxxx.dkr.ecr.us-west-2.amazonaws.com
aws ecr create-repository - Test des Repository-Namens
Docker Build-t Test.
Docker-Tag-Test: Neueste xxxxxxxx.dkr.ecr.us-west-2.amazonaws.com/test:latest
Docker Push xxxxxxxx.dkr.ecr.us-west-2.amazonaws.com/test:latest
quelle
Sie müssen kein Repo pro Bild erstellen, sondern müssen die Namen neu strukturieren:
quelle
nginx:alpine
vsnginx:perl