Arbeiten mit Amazon Elastic Container Registry in VS Code - AWS Toolkit for VS Code

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Arbeiten mit Amazon Elastic Container Registry in VS Code

Sie können den Amazon-Elastic-Container-Registry- (Amazon-ECR) -Dienst direkt aus demAWSErkunden Sie VS Code und verwenden Sie es, um ein Programmabbild in ein Amazon ECR-Repository zu übertragen. Um zu beginnen, müssen Sie die folgenden Schritte ausführen:

  1. Erstellen Sie eine Dockerfile, die die zum Erstellen eines Images erforderlichen Informationen enthält.

  2. Erstellen Sie ein Image aus diesem Dockerfile und kennzeichnen Sie das Bild zur Verarbeitung.

  3. Erstellen Sie ein Repository in Ihrer Amazon ECR-Instanz.

  4. Verschieben Sie das Image mit Tags, um Ihr Repository.

Voraussetzungen

Bevor Sie die Amazon ECR-Servicefunktion des Toolkit for VS Code verwenden können, müssen Sie diese erfüllenVoraussetzungen.

1. Erstellen eines Docker-Datei

Docker verwendet eine Datei namens Dockerfile, um ein Image zu definieren, das gepusht und in einem Remote-Repository gespeichert werden kann. Bevor Sie ein Image in ein ECR-Repository hochladen können, müssen Sie eine Dockerfile erstellen und dann ein Image aus dieser Dockerfile erstellen.

Erstellen eines Docker-Datei
  1. Navigieren Sie mit dem Toolkit for VS Code -Explorer zu dem Verzeichnis, in dem Sie Ihre Dockerfile speichern möchten.

  2. Erstellen Sie eine neue Datei mit dem NamenDockerfile.

    Anmerkung

    VS Code könnte Sie auffordern, einen Dateityp oder eine Dateiendung auszuwählen. Wenn dies der Fall ist, wählen SieNur-Text. Vs Code hat eine „Dockerfile“ -Erweiterung. Wir empfehlen Ihnen jedoch nicht, es zu verwenden. Dies liegt daran, dass die Erweiterung Konflikte mit bestimmten Versionen von Docker oder anderen zugehörigen Anwendungen verursachen kann.

Bearbeiten Sie Ihre Dockerfile mit VS Code

Wenn Ihr Dockerfile eine Dateierweiterung hat, öffnen Sie das Kontextmenü (rechte Maustaste) für die Datei und entfernen Sie die Dateierweiterung.

Nachdem die Dateierweiterung aus Ihrem Dockerfile entfernt wurde:

  1. Öffnen Sie das leere Dockerfile direkt in VS Code.

  2. Kopieren Sie den Inhalt des folgenden Beispiels in Ihr Dockerfile:

    Beispiel Dockerfile Image Vorlage
    FROM ubuntu:18.04 # Install dependencies RUN apt-get update && \ apt-get -y install apache2 # Install apache and write hello world message RUN echo 'Hello World!' > /var/www/html/index.html # Configure apache RUN echo '. /etc/apache2/envvars' > /root/run_apache.sh && \ echo 'mkdir -p /var/run/apache2' >> /root/run_apache.sh && \ echo 'mkdir -p /var/lock/apache2' >> /root/run_apache.sh && \ echo '/usr/sbin/apache2 -D FOREGROUND' >> /root/run_apache.sh && \ chmod 755 /root/run_apache.sh EXPOSE 80 CMD /root/run_apache.sh

    Dies ist eine Dockerfile, die ein Ubuntu-18.04-Image verwendet. DieLAUFAnweisungen aktualisieren die Paket-Caches. Installieren Sie Softwarepakete für den Webserver und schreiben Sie dann den Inhalt „Hello World!“ in das Dokumenten-Stammverzeichnis des Webservers. DieAUSSETZEN-Befehl stellt Port 80 auf dem Container bereit und dieCMDAnweisung startet den Webserver.

  3. Speichern Sie die Docker-Datei.

    Wichtig

    Stellen Sie sicher, dass Ihre Dockerfile keine Erweiterung an den Namen angehängt hat. Eine Dockerfile mit Erweiterungen kann Konflikte mit bestimmten Versionen von Docker oder anderen zugehörigen Anwendungen verursachen.

2. Erstellen Sie Ihr Image aus der Docker-Datei

Die von Ihnen erstellte Dockerfile enthält die Informationen, die zum Erstellen eines Images für ein Programm erforderlich sind. Bevor Sie dieses Image an Ihre Amazon ECR-Instanz übertragen können, müssen Sie zuerst das Image erstellen.

Erstellen Sie ein Image aus der Docker-Datei
  1. Verwenden Sie die Docker CLI oder eine CLI, die in Ihre Docker-Instanz integriert ist, um in das Verzeichnis zu navigieren, das Ihre Dockerfile enthält.

  2. Ausführen des sDocker-Buildum das Image zu erstellen, das in Ihrer Dockerfile definiert ist.

    docker build -t hello-world .
  3. Ausführen des sDocker-Images-Befehl, um zu überprüfen, ob das Abbild korrekt erstellt wurde.

    docker images --filter reference=hello-world
    Beispielausgabe:
    REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest e9ffedc8c286 4 minutes ago 241MB
  4. Anmerkung

    Dieser Schritt ist nicht erforderlich, um ein Image zu erstellen oder zu pushen, aber Sie können sehen, wie das Programm-Image funktioniert, wenn es ausgeführt wird.

    Um das neu erstellte Image auszuführen, verwenden Sie den BefehlDockerausgabeBefehl.

    docker run -t -i -p 80:80 hello-world

    Die-p-Option, die im vorherigen Beispiel angegeben wurde, ordnet das exponiertePort 80auf dem Behälter zuPort 80des Hostsystems. Wenn Sie Docker lokal ausführen, navigieren Sie zuhttp://localhost:80Verwenden des Webbilds. Wenn das Programm korrekt lief, wird ein „Hello World!“ -Anweisung wird angezeigt.

    Weitere Informationen zuDockerausgabeBefehl, sieheDockerausgabeauf der Docker-Website.

3. Erstellen Sie ein neues Repository

Um Ihr Bild in Ihre Amazon ECR-Instanz hochzuladen, erstellen Sie ein neues Repository, in dem es gespeichert werden kann.

Erstellen Sie ein neues Amazon-ECR-Repository
  1. Aus dem VS-CodeAktivitätsleiste, wähle dasAWSToolkit-Symbol.

  2. Expand erweitern AWSExplorerMenü.

  3. Suchen Sie die StandardeinstellungAWSRegion, die mit Ihrem verknüpft istAWSKonto. Wählen Sie es dann aus, um eine Liste der Dienste anzuzeigen, die über das Toolkit for VS Code verfügbar sind.

  4. Wählen Sie das SymbolECR +Option, um mit demErstellen Sie ein neues -Prozess.

  5. Folgen Sie den Anweisungen, um den Vorgang abzuschließen.

  6. Nach Abschluss können Sie Ihr neues Repository über dasECR-Abschnitt imAWSExplorer-Menü.

4. Push, Pull-Übertragung und Löschen von Images

Nachdem Sie ein Image aus Ihrem Dockerfile erstellt und ein Repository erstellt haben, können Sie Ihr Image in Ihr Amazon ECR-Repository pushen. Verwenden Sie zusätzlich dasAWSExplorer mit Docker und demAWSCLI können Sie folgende Aktionen ausführen:

  • Rufen Sie ein Image aus dem -Repository ab.

  • Lösche ein Bild, das in deinem Repository gespeichert ist.

  • Lösche dein Repository.

Authentifizieren Sie Docker mit Ihrer Standardregistrierung

Für den Datenaustausch zwischen Amazon ECR- und Docker-Instances ist eine Authentifizierung erforderlich. So authentifizieren Sie Docker bei Ihrer Registrierung:

  1. Öffnen Sie ein Befehlszeilenbetriebssystem, das mit Ihrer Instanz von verbunden istAWSCLI.

  2. Verwenden derget-login-passwordMethode zur Authentifizierung bei Ihrer privaten ECR-Registrierung.

    aws ecr get-login-password --region region | docker login --username AWS --password-stdin AWS_account_id.dkr.ecr.region.amazonaws.com
    Wichtig

    Im vorhergehenden Befehl müssen Sie beideregionund dieAWS_account_idzu den Informationen, die spezifisch für Ihre sindAWSKonto.

Versehen und pushen Sie ein Image in Ihr Repository

Nachdem Sie Docker mit Ihrer Instanz von authentifiziert habenAWS, pushen Sie ein Image in Ihr Repository.

  1. Verwenden derDocker-Images, um die lokal gespeicherten Bilder anzuzeigen und das zu identifizieren, das Sie markieren möchten.

    docker images
    Beispielausgabe:
    REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest e9ffedc8c286 4 minutes ago 241MB
  2. Kennzeichnen Sie Ihr Bild mit demDocker-TagBefehl.

    docker tag hello-world:latest AWS_account_id.dkr.ecr.region.amazonaws.com/hello-world:latest
  3. Verschieben Sie das markierte Image in Ihr Repository mit demDocker-TagBefehl.

    docker push AWS_account_id.dkr.ecr.region.amazonaws.com/hello-world:latest
    Beispielausgabe:
    The push refers to a repository [AWS_account_id.dkr.ecr.region.amazonaws.com/hello-world] (len: 1) e9ae3c220b23: Pushed a6785352b25c: Pushed 0998bf8fb9e9: Pushed 0a85502c06c9: Pushed latest: digest: sha256:215d7e4121b30157d8839e81c4e0912606fca105775bb0636b95aed25f52c89b size: 6774

Nachdem dein markiertes Bild erfolgreich in dein Repository hochgeladen wurde, ist es in derAWSExplorer-Menü.

Abruf eines Abbilds von Amazon ECR
  • Sie können ein Image auf Ihre lokale Instanz vonDocker-TagBefehl.

    docker pull AWS_account_id.dkr.ecr.region.amazonaws.com/hello-world:latest
    Beispielausgabe:
    The push refers to a repository [AWS_account_id.dkr.ecr.region.amazonaws.com/hello-world] (len: 1) e9ae3c220b23: Pushed a6785352b25c: Pushed 0998bf8fb9e9: Pushed 0a85502c06c9: Pushed latest: digest: sha256:215d7e4121b30157d8839e81c4e0912606fca105775bb0636b95aed25f52c89b size: 6774
Löschen Sie ein Image aus Ihrem Amazon ECR-Repository

Es gibt zwei Methoden zum Löschen eines Images aus VS Code. Die erste Methode ist die Verwendung desAWS-Explorer.

  1. From derAWSExplorer, erweitern Sie dasECRSpeisekarte

  2. Erweitern Sie das Repository, aus dem Sie ein Bild löschen möchten

  3. Wählen Sie das Image-Tag aus, das Sie löschen möchten, indem Sie das Kontextmenü öffnen (rechte Maustaste).

  4. Wählen Sie das SymbolLöschen von Tags...Option, um alle gespeicherten Bilder zu löschen, die mit diesem Tag verknüpft sind

Löschen eines Abbilds mit demAWSCLI
  • Löschen können Sie ein Image auch mit dem InhaltAWSecr batch-delete-imageBefehl.

    AWS ecr batch-delete-image \ --repository-name hello-world \ --image-ids imageTag=latest
    Beispielausgabe:
    { "failures": [], "imageIds": [ { "imageTag": "latest", "imageDigest": "sha256:215d7e4121b30157d8839e81c4e0912606fca105775bb0636b95aed25f52c89b" } ] }
Löschen Sie ein Repository aus Ihrer Amazon ECR-Instanz

Es gibt zwei Methoden, um ein Repository aus VS Code zu löschen. Die erste Methode ist die Verwendung desAWS-Explorer.

  1. From derAWSExplorer, erweitern Sie dasECRSpeisekarte

  2. Wählen Sie das Repository aus, das Sie löschen möchten, indem Sie das Kontextmenü öffnen (rechte Maustaste).

  3. Wählen Sie das SymbolRepository...Option zum gewählten -Repository

Löschen eines Amazon ECR-Repositorys ausAWSCLI
  • Du kannst ein Repository mit demAWSecr löschen-repositoryBefehl.

    Anmerkung

    Standardmäßig können Sie kein Repository löschen, das Images enthält. Allerdings ist der--forceflag erlaubt dies.

    AWS ecr delete-repository \ --repository-name hello-world \ --force
    Beispielausgabe:
    { "failures": [], "imageIds": [ { "imageTag": "latest", "imageDigest": "sha256:215d7e4121b30157d8839e81c4e0912606fca105775bb0636b95aed25f52c89b" } ] }