Wie man

Ausführen von Docker-Containern auf AWS ECS - Docker-Images in ECR hochladen

Ausführen von Docker-Containern auf AWS ECS - Docker-Images in ECR hochladen

Dieser Artikel ist Teil 2 einer dreiteiligen Anleitung zum Ausführen von Docker-Containern auf AWS ECS. ECS steht für Elastic Container Service. Es ist ein verwalteter Containerdienst, der Docker-Container ausführen kann run. AWS bietet zwar auch Container-Management mit Kubernetes (EKS) an, hat aber auch seine proprietäre Lösung (ECS).

Hier ist Teil 1-Artikel: Ausführen von Docker-Containern auf AWS mit ECS - Teil 1

Der Leitfaden behandelt:

Teil 2 dieses Handbuchs behandelt das Erstellen der Image-Registry (ECR) und das Pushen von Images in die Registry.

Für diese Demonstration verwenden wir ein einfaches Hallo-Welt-Bild. Wir werden das Image aus dem Docker ziehen und in unsere Container-Registry (ECR) übertragen.

Einrichtungsanforderungen/Voraussetzungen

Der Benutzer/Leser sollte sicherstellen, dass er die folgenden Anforderungen erfüllt, bevor er mit diesem Handbuch fortfährt. Dazu gehören:

Erstellen Sie die AWS ECR (Elastic Container Registry)

Die Elastic Container Registry (ECR) ist eine von AWS verwaltete Container-Registry zum Speichern von Docker-Images. Wir werden die Registrierung mit der folgenden CloudFormation-Vorlage erstellen.

AWSTemplateFormatVersion: "2010-09-09" Beschreibung: "Vorlage zum Erstellen eines ECR-Repositorys" Parameter: ECR: Typ: Zeichenfolge Beschreibung: "Der Name Ihrer ECR-Registrierung" Ressourcen: ECRRepository1: Typ: "AWS::ECR::Repository " Eigenschaften: RepositoryName: test-ecr ImageScanningConfiguration: scanOnPush: "true" Tags: - Schlüssel: Name Wert: !Ref ECR ​​- Schlüssel: CreatedBy Wert: Maureen Barasa - Schlüssel: Projektwert: test-ecs Ausgaben: RegistryName: Wert: !Ref ECR ​​Beschreibung: Name des ECR-Registers

Der Leser/Benutzer sollte die Vorlage an seine spezifischen Anforderungen anpassen. Spezifische Aspekte der anzupassenden Vorlage sind:

Um die Registrierung manuell zu erstellen, auf der ECR-Konsole; Klicken Sie auf Repository erstellen.

Repository erstellen

Konfigurieren Sie dann die Repository-Einstellungen.

Repository-Einstellungen konfigurieren

Wenn Sie fertig sind, klicken Sie auf Erstellen. Sie haben nun Ihr ECR-Repository erstellt.

Hochladen von Bildern in AWS ECR mit AWS CodeBuild

Sobald Sie Ihr Image-Repository haben, ist es an der Zeit, das Image in das Repository hochzuladen. Wir verwenden CodeBuild, um das Image aus dem Docker-Hub abzurufen und in die ECR-Registrierung zu übertragen.

Klicken Sie in der CodeBuild-Konsole auf Build-Projekt erstellen.

Projekt erstellen, erstellen

Geben Sie als Nächstes bei Projekt- und Quellkonfigurationen Ihren Projektnamen und Ihre Beschreibung ein. Außerdem können Sie Tags für Ihr Build-Projekt hinzufügen.

Wählen Sie als Quelle keine Quelle aus. Wenn Sie Ihre Docker-Datei in einem Repository oder s3-Bucket haben, wählen Sie Ihre Quelle als dieses Repository. Quellenoptionen sind:

Projekt- und Quellkonfiguration

Wählen Sie dann unter der Umgebung die Umgebung aus, in der Ihr Build-Projekt ausgeführt werden soll. Da unser Image ein Linux-Image ist, haben wir uns für eine Linux-Umgebung entschieden.

Wählen Sie Build-Umgebung

Wählen Sie für die Rolle neue Servicerolle aus. Hinweis: Stellen Sie sicher, dass der Rolle die AmazonEC2ContainerRegistryFullAccess-Richtlinie zugeordnet ist. Andernfalls funktioniert CodeBuild nicht.

Wählen Sie als Nächstes unter buildspec die Option Build-Befehle einfügen aus und fügen Sie eine der beiden folgenden Vorlagen ein:

Version: 0.2 Phasen: installieren: Laufzeitversionen: Docker: 19 Befehle: - curl "https://awscli.Amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" - awscliv2 entpacken.Postleitzahl - ./aws/install pre_build: Befehle: - Echologging an ecr - $(aws ecr get-login --no-include-email --region eu-central-1) build: Befehle: - docker pull hello-world - docker tag hallo-world: neueste 429758582529.dkr.ecr.eu-zentral-1.Amazonaws.com/hello-world:latest post_build: Befehle: - echo build am 'date' abgeschlossen - echo push to repo - docker push 429758582529.dkr.ecr.eu-zentral-1.Amazonaws.com/hello-world:latest - echo Definitionsdatei schreiben… - printf '["name":"Hello_World","imageUri":"%s"]' 429758582529.dkr.ecr.eu-zentral-1.Amazonaws.com/hello-world:latest > HelloWorldtaskdefinition.json-Artefakte: Dateien: HelloWorldtaskdefinition.json

Falls Sie das Image aus einer Docker-Datei erstellen möchten und Ihren Code beim Code-Commit haben. Verwenden Sie die folgende Buildspec.

Version: 0.2 Phasen: installieren: Laufzeitversionen: Docker: 19 Befehle: - curl "https://awscli.Amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" - awscliv2 entpacken.Postleitzahl - ./aws/install pre_build: Befehle: - echo logging to ecr - $(aws ecr get-login --no-include-email --region eu-central-1) build: Befehle: - echo starting build on 'date' - CD ./ - docker build -t hallo-world . - Docker-Tag hallo-world: neueste 429758582529.dkr.ecr.eu-zentral-1.Amazonaws.com/hello-world:latest post_build: Befehle: - echo build am 'date' abgeschlossen - echo push to repo - docker push 429758582529.dkr.ecr.eu-zentral-1.Amazonaws.com/hello-world:latest - echo Definitionsdatei schreiben… - printf '["name":"Hello_World","imageUri":"%s"]' 429758582529.dkr.ecr.eu-zentral-1.Amazonaws.com/hello-world:latest > HelloWorldtaskdefinition.json-Artefakte: Dateien: HelloWorldtaskdefinition.json

Wählen Sie dann unter Artefakte den s3-Bucket aus, der zuvor gemäß der Anforderungscheckliste erstellt wurde.

Artefakte bauen

Schließlich kann man unter Logs zwischen einer CloudWatch Log-Gruppe oder einem S3-Bucket wählen.

Wählen Sie Protokollierungsoptionen

Wenn Sie fertig sind, klicken Sie auf Build-Projekt erstellen. Sobald das Projekt erstellt wurde, können Sie jetzt auf Build starten klicken.

Während das Build-Projekt ausgeführt wird, können Sie den Fortschritt unter Build-Logs und Phasendetails überprüfen. Siehe unten unser Build-Projekt.

Projektstatus erstellen

Bild in Registry übertragen

Wir haben das Image nun erfolgreich aus Docker gezogen und in unsere ECR-Registrierung verschoben. Im nächsten Artikel werden wir uns ansehen, wie Sie das Image in einem AWS ECS-Cluster bereitstellen.

Teil 3: AWS ECS: Bereitstellen von Containern mithilfe von Aufgaben- und Servicedefinitionen – Teil 3

Wichtige Links

Andere AWS-Leitfäden:

Glückliches Bauen!!!

Das sollten Neulinge wissen, bevor sie ihre ersten Bitcoins kaufen
In dieser modernen Ära hat jeder oft gehört, dass durch Investitionen in BTC Gewinne erzielt werden, d.e., Bitcoin einfach oder einfach. Aber bevor Si...
So installieren Sie PHP 8.0 auf Ubuntu 20.04|18.04
PHP ist eine beliebte Skriptsprache für die Webentwicklung, die ursprünglich 1994 von Rasmus Lerdorf, einem dänisch-kanadischen Programmierer, entwick...
Wie schreibe ich ein effektives persönliches Statement zur Informationstechnologie?
Die meisten Universitäten verlangen von Ihnen eine persönliche Stellungnahme mit einer Beschreibung Ihrer Persönlichkeit. Sie möchten Ihre Interessen ...