Zum Inhalt

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.

  1. In der AWS Management Console, suchen Sie den Service Elastic Container Registry image-20230328075011231

  2. Wählen Sie Get Started um ein neues Repository zu erstellen image-20230328075521898

  3. Wählen Sie als Visibilitiy settings Private und als Repository name nginx-custom. Alle anderen Einstellungen können Sie wie vorausgewählt belassen. image-20230328080643753

  4. Wählen Sie Ihr soeben erstelltes Repository nginx-custom ausimage-20230328080908031

  5. 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. image-20230328081413014

    Fehlende AWS CLI

    Sie haben aktuell keine AWS CLI installiert. Der Befehl aws ecr wird eine Fehlermeldung ausgeben, wenn Sie ihn lokal ausführen.

    $ aws ecr get-login-password --region us-east-1
    bash: aws: command not found
    

    Lösung: Benutzen Sie die Learner Lab Console

    Führen Sie den Befehl aws ecr get-login-password --region us-east-1 direkt im Learner Lab in der Console aus und kopieren Sie den Token in die Zwischenablage. image-20230328085121237

  6. In Ihrem lokalen Terminal geben Sie nun den zweiten Teil des Befehls nach dem | ein. image-20230328081413014

    Sie kopieren den Token aus dem Learner Lab mit einem echo vor den docker login Befehl. ⚠️ Ersetzen Sie 1234EXAMPLE.dkr.ecr.us-east-1.amazonaws.com mit Ihrer URL.

    $ echo "<TOKEN>" | docker login --username AWS --password-stdin 1234EXAMPLE.dkr.ecr.us-east-1.amazonaws.com
    Succeeded
    

    Entfernen Sie das Argument --password-stdin aus dem docker login Befehl 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

    $ docker login --username AWS 1234EXAMPLE.dkr.ecr.us-east-1.amazonaws.com
    Password:
    Login Succeeded
    

  7. 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. image-20230328101925571

    $ 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. image-20230328102346821