42 AWS ECR mit Console
Wir arbeiten zuerst mit dem nginx / index.html Image. Im ersten Schritt laden wir unser erstelltes Image in die Amazon Elastic Container Registry, kurz ECR.
In Ihrem AWS Academy Learner Lab öffnen Sie die AWS Management Console.
-
In der AWS Management Console, suchen Sie den Service Elastic Container Registry

-
Wählen Sie Get Started um ein neues Repository zu erstellen

-
Wählen Sie als Visibilitiy settings
Privateund als Repository namenginx-custom. Alle anderen Einstellungen können Sie wie vorausgewählt belassen.
-
Wählen Sie Ihr soeben erstelltes Repository nginx-custom aus

-
Rechts finden Sie View push commands. Es enthält personalisierte Befehle damit Sie sich authentifzieren und Ihr Image in Ihr Repository pushen zu können.

Fehlende AWS CLI
Sie haben aktuell keine AWS CLI installiert. Der Befehl
aws ecrwird eine Fehlermeldung ausgeben, wenn Sie ihn lokal ausführen.Lösung: Benutzen Sie die Learner Lab Console
Führen Sie den Befehl
aws ecr get-login-password --region us-east-1direkt im Learner Lab in der Console aus und kopieren Sie den Token in die Zwischenablage.
-
In Ihrem lokalen Terminal geben Sie nun den zweiten Teil des Befehls nach dem
|ein.
Sie kopieren den Token aus dem Learner Lab mit einem
echovor dendocker loginBefehl.
Ersetzen Sie 1234EXAMPLE.dkr.ecr.us-east-1.amazonaws.commit Ihrer URL.Entfernen Sie das Argument
--password-stdinaus demdocker loginBefehl um die Passworteingabe interaktiv durchzuführen.
Die Passworteingabe wird nicht angezeigt, fügen Sie den kopierten Token mit einem Rechtsklick ein und Bestätigen Sie mit Enter
-
Führen Sie nun die Schritte 2, 3 und 4 aus der Push commands for nginx-custom Anweisung in Ihrer Elastic Container Registry lokal im Terminal aus.

$ echo <TOKEN> | docker login --username AWS --password-stdin 12345EXAMPLE.dkr.ecr.us-east-1.amazonaws.com WARNING! Your password will be stored unencrypted in /home/dominic/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded $ docker build -t nginx-custom . [+] Building 0.4s (7/7) FINISHED => [internal] load .dockerignore => => transferring context: 2B => [internal] load build definition from Dockerfile => => transferring dockerfile: 109B => [internal] load metadata for docker.io/library/nginx:alpine-slim => [1/2] FROM docker.io/library/nginx:alpine-slim@sha256:294dc03dddc4e1ae4062fa379b977ab49cf4f022dd4af371cde9015a0abb9c28 => [internal] load build context => => transferring context: 32B => CACHED [2/2] COPY index.html /usr/share/nginx/html/index.html => exporting to image => => exporting layers => => writing image sha256:f7ad6939dccca8f72a13d112d1e719f8b944bce4dc6d49156e1d6c37216e384a => => naming to docker.io/library/nginx-custom $ docker tag nginx-custom:latest 12345EXAMPLE.dkr.ecr.us-east-1.amazonaws.com/nginx-custom:latest $ docker push 12345EXAMPLE.dkr.ecr.us-east-1.amazonaws.com/nginx-custom:latest The push refers to repository [12345EXAMPLE.dkr.ecr.us-east-1.amazonaws.com/nginx-custom] 75e45621f57c: Pushed f1bee861c2ba: Pushed c4d67a5827ca: Pushed 152a948bab3b: Pushed 5e59460a18a3: Pushed d8a5a02a8c2d: Pushed 7cd52847ad77: Pushed latest: digest: sha256:0c531097485d76eeecc21c7929e4ab537dd24bcf079f4c9c80a3f2be65f26802 size: 1775
Zusammenfassung
Sie haben Ihr Docker Image nginx-custom erfolgreich erstellt, mit nginx-custom:latest getaggt und in Ihr neues Private Repository in Amazon Elastic Container Registry hochgeladen.
