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.
Erstellen eines Container-Images zur Verwendung auf Amazon ECS
Amazon ECS verwendet Docker-Images in Aufgabendefinitionen, um Container zu launchen. Docker ist eine Technologie, die Ihnen die Tools zum Erstellen, Ausführen, Testen und Bereitstellen verteilter Anwendungen in Containern bereitstellt.
Der Zweck der hier beschriebenen Schritte besteht darin, Sie durch das Erstellen Ihres ersten Docker-Images zu führen und dieses Image an Amazon ECR, eine Container-Registry, zu übertragen, um es in Ihren Amazon-ECS-Aufgabendefinitionen zu verwenden. Diese Anleitung setzt voraus, dass Sie ein grundlegendes Verständnis davon haben, was Docker ist und wie es funktioniert. Weitere Informationen zu Docker finden Sie unter Was ist Docker
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind.
-
Stellen Sie sicher, dass Sie die Einrichtungsschritte für Amazon ECR abgeschlossen haben. Weitere Informationen finden Sie unter Moving an Image Through its Lifecycle in Amazon ECR im Amazon Elastic Container Registry User Guide.
-
Ihr Benutzer verfügt über die erforderlichen IAM-Berechtigungen für den Zugriff auf den Amazon-ECR-Service und dessen Nutzung. Weitere Informationen finden Sie unter Amazon ECR-verwaltete Richtlinien.
-
Sie haben Docker installiert. Informationen zu Docker-Installationsschritten für Amazon Linux 2 finden Sie unter Installation von Docker auf 0.23 AL2. Informationen zu allen anderen Betriebssystemen finden Sie in der Docker-Dokumentation unter Docker-Desktop-Übersicht
. -
Sie haben das AWS CLI installiert und konfiguriert. Weitere Informationen finden Sie im AWS Command Line Interface Benutzerhandbuch unter Installation oder Aktualisierung AWS CLI auf die neueste Version von.
Wenn Sie keine lokale Entwicklungsumgebung haben oder benötigen und lieber eine EC2 Amazon-Instance verwenden möchten, um Docker zu verwenden, bieten wir die folgenden Schritte an, um eine EC2 Amazon-Instance mit Amazon Linux 2 zu starten und Docker Engine und die Docker CLI zu installieren.
Docker ist auf vielen verschiedenen Betriebssystemen verfügbar, darunter die meisten modernen Linux-Distributionen wie Ubuntu und sogar macOS und Windows. Weitere Informationen zur Installation von Docker unter einem bestimmten Betriebssystem finden Sie im Docker-Installationshandbuch
Für die Verwendung von Docker wird kein lokales Entwicklungssystem benötigt. Wenn Sie Amazon EC2 bereits verwenden, können Sie eine Amazon Linux 2023-Instance starten und Docker installieren, um loszulegen.
Wenn Sie Docker bereits installiert haben, fahren Sie mit Erstellen eines Docker-Image fort.
So installieren Sie Docker auf einer EC2 Amazon-Instance mithilfe eines Amazon Linux 2023 AMI
-
Starten Sie eine Instance mit dem neuesten Amazon-Linux-2023-AMI. Weitere Informationen finden Sie im EC2 Amazon-Benutzerhandbuch unter Starten einer EC2 Instance mithilfe des Launch-Instance-Assistenten in der Konsole.
-
Verbinden Sie sich mit der Instance. Weitere Informationen finden Sie unter Connect zu Ihrer EC2 Instance herstellen im EC2 Amazon-Benutzerhandbuch.
-
Aktualisieren Sie die installierten Pakete und den Cache der Paketverwaltung auf Ihrer Instance.
sudo yum update -y
-
Installieren Sie das neueste Docker-Community Edition-Paket.
sudo yum install docker
-
Starten Sie den Docker-Service.
sudo service docker start
-
Fügen Sie den
ec2-user
zur Gruppedocker
hinzu, sodass Sie Docker-Befehle ohne Verwendung vonsudo
ausführen können.sudo usermod -a -G docker ec2-user
-
Melden Sie sich ab und wieder an, um die neuen Berechtigungen der Gruppe
docker
zu übernehmen. Sie erreichen dies, indem Sie das aktuelle SSH-Terminalfenster schließen und sich über ein neues Terminalfenster wieder mit Ihrer Instance verbinden. Ihre neue SSH-Sitzung verfügt über die entsprechendendocker
-Gruppenberechtigungen. -
Überprüfen Sie, ob der
ec2-user
Docker-Befehle ohnesudo
ausführen kann.docker info
Anmerkung
In einigen Fällen müssen Sie möglicherweise Ihre Instance neu starten, um den
ec2-user
für den Zugriff auf den Docker-Daemon zu berechtigen. Versuchen Sie, Ihre Instance neu zu starten, wenn die folgende Fehlermeldung angezeigt wird:Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Erstellen eines Docker-Image
Amazon-ECS-Aufgabendefinitionen nutzen Docker-Images, um Container auf den Container-Instances in Ihren Clustern zu starten. In diesem Abschnitt erstellen Sie ein Docker-Image einer einfachen Webanwendung und testen es auf Ihrem lokalen System oder Ihrer EC2 Amazon-Instance. Anschließend übertragen Sie das Image in die Amazon ECR-Container-Registry, sodass Sie es in einer Amazon ECS-Aufgabendefinition verwenden können.
So erstellen Sie ein Docker-Image einer einfachen Webanwendung
-
Erstellen Sie eine Datei mit dem Namen
Dockerfile
. Eine Docker-Datei ist eine Manifestdatei, die das für Ihr Docker-Image zu verwendende Basis-Image sowie die Inhalte beschreibt, die Sie darauf installieren und ausführen möchten. Weitere Informationen zu Dockerfiles finden Sie unter Dockerfile Reference. touch Dockerfile
-
Bearbeiten Sie die soeben von Ihnen erstellte
Dockerfile
und fügen Sie die folgenden Inhalte hinzu.FROM public.ecr.aws/amazonlinux/amazonlinux:latest # Update installed packages and install Apache RUN yum update -y && \ yum install -y httpd # Write hello world message RUN echo 'Hello World!' > /var/www/html/index.html # Configure Apache RUN echo 'mkdir -p /var/run/httpd' >> /root/run_apache.sh && \ echo 'mkdir -p /var/lock/httpd' >> /root/run_apache.sh && \ echo '/usr/sbin/httpd -D FOREGROUND' >> /root/run_apache.sh && \ chmod 755 /root/run_apache.sh EXPOSE 80 CMD /root/run_apache.sh
Diese Docker-Datei verwendet das öffentliche Amazon-Linux-2-Image, das auf Amazon ECR Public gehostet wird. Die
RUN
-Anweisungen aktualisieren die Caches der Paketverwaltung, installieren einige Softwarepakete für den Webserver und schreiben dann den Inhalt "Hello World!" in das Stammverzeichnis für Dokumente des Webservers. DieEXPOSE
Anweisung bedeutet, dass Port 80 auf dem Container derjenige ist, der zuhört, und dieCMD
Anweisung startet den Webserver. -
Erstellen Sie das Docker-Image aus der Dockerfile.
Anmerkung
Einige Versionen von Docker erfordern im folgenden Befehl anstelle des unten angegebenen relativen Pfads den vollständigen Pfad zu Ihrer Dockerfile.
Wenn Sie den Befehl auf macOS M1/Mx-chip, Use the --platform option "--platform linux/amd 64" ausführen.
docker build -t hello-world .
-
Führen Sie Ihr Container-Image auf.
docker images --filter reference=hello-world
Ausgabe:
REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest e9ffedc8c286 4 minutes ago 194MB
-
Führen Sie das neu erstellte Image aus. Die Option
-p 80:80
ordnet den bereitgestellten Port 80 auf dem Container dem Port 80 auf dem Hostsystem zu.docker run -t -i -p 80:80 hello-world
Anmerkung
Ausgabe vom Apache-Webserver wird im Terminal-Fenster angezeigt. Sie können die Meldung „
Could not reliably determine the fully qualified domain name
“ ignorieren. -
Öffnen Sie einen Browser und richten Sie ihn auf den Server aus, auf dem Docker ausgeführt und Ihr Container gehostet wird.
-
Wenn Sie eine EC2 Instanz verwenden, ist dies der Public-DNS-Wert für den Server. Dabei handelt es sich um dieselbe Adresse, die Sie für die Verbindung mit der Instanz über SSH verwenden. Vergewissern Sie sich, dass die Sicherheitsgruppe für Ihre Instance eingehenden Datenverkehr auf Port 80 zulässt.
-
Wenn Sie Docker lokal ausführen, richten Sie Ihren Browser auf http://localhost/
aus. -
Wenn Sie es docker-machine auf einem Windows- oder Mac-Computer verwenden, suchen Sie die IP-Adresse der VirtualBox VM, die Docker hostet, mit dem docker-machine ip Befehl und ersetzen
machine-name
Sie es durch den Namen des Docker-Computers, den Sie verwenden.docker-machine ip
machine-name
Sie sollten eine Webseite mit dem Text "Hello, World!" Nachricht sehen.
-
-
Beenden Sie den Docker-Container, indem Sie Strg+C eingeben.
Senden Sie Ihr Image an die Amazon Elastic Container-Registry
Amazon ECR ist ein verwalteter AWS Docker-Registrierungsdienst. Sie können die Docker-Befehlszeilenschnittstelle (CLI) verwenden, um Images in Ihren Amazon ECR-Repositorys zu pushen, pullen und zu verwalten. Produktdetails zu Amazon ECR, Fallstudien von Kunden und FAQs weitere Informationen finden Sie auf den Produktdetailseiten der Amazon Elastic Container Registry
So versehen Sie Ihr Image mit Tags und übertragen es per Push direkt zu Amazon ECR
-
Erstellen Sie ein Amazon ECR-Repository, um Ihr
hello-world
-Image zu speichern. Notieren Sie sich denrepositoryUri
in der Ausgabe.Ersetzen
region
Sie z. AWS-Region B. durch Ihr.us-east-1
aws ecr create-repository --repository-name
hello-repository
--regionregion
Ausgabe:
{ "repository": { "registryId": "
aws_account_id
", "repositoryName": "hello-repository", "repositoryArn": "arn:aws:ecr:region
:aws_account_id
:repository/hello-repository", "createdAt": 1505337806.0, "repositoryUri": "aws_account_id
.dkr.ecr.region
.amazonaws.com/hello-repository" } } -
Versehen Sie das
hello-world
-Image als Tag mit demrepositoryUri
-Wert aus dem vorherigen Schritt.docker tag hello-world
aws_account_id
.dkr.ecr.region
.amazonaws.com/hello-repository
-
Führen Sie den Befehl aws ecr get-login-password aus. Geben Sie den Registrierungs-URI an, bei dem Sie sich authentifizieren möchten. Weitere Informationen finden Sie unter Registry-Authentifizierung im Benutzerhandbuch zu Amazon-Elastic-Container-Registry.
aws ecr get-login-password --region
region
| docker login --username AWS --password-stdinaws_account_id
.dkr.ecr.region
.amazonaws.com.rproxy.goskope.comAusgabe:
Login Succeeded
Wichtig
Bei einem Fehler installieren oder aktualisieren Sie auf die neueste AWS CLI-Version. Weitere Informationen finden Sie im AWS Command Line Interface Benutzerhandbuch unter Installation oder Aktualisierung AWS CLI auf die neueste Version von.
-
Senden Sie das Image per Push mit dem
repositoryUri
-Wert aus dem vorherigen Schritt zu Amazon ECR.docker push
aws_account_id
.dkr.ecr.region
.amazonaws.com/hello-repository
Bereinigen
Um mit dem Erstellen einer Amazon-ECS-Aufgabendefinition und dem Launchen einer Aufgabe mit Ihrem Container-Image fortzufahren, gehen Sie direkt zu Nächste Schritte. Wenn Sie Ihr Amazon ECR-Image nicht mehr nutzen möchten, können Sie das Repository löschen, sodass Ihnen keine Kosten für die Image-Speicherung anfallen.
aws ecr delete-repository --repository-name
hello-repository
--regionregion
--force
Nächste Schritte
Ihre Aufgabendefinitionen erfordern eine Aufgaben-Ausführungsrolle. Weitere Informationen finden Sie unter IAM-Rolle für die Amazon-ECS-Aufgabenausführung.
Nachdem Sie Ihr Container-Image erstellt und an Amazon ECR übertragen haben, können Sie dieses Image in einer Aufgabendefinition verwenden. Weitere Informationen finden Sie unter einem der folgenden Themen: