Erstellen eines benutzerdefinierten Images und Übertragen auf Amazon ECR - Amazon SageMaker AI

Erstellen eines benutzerdefinierten Images und Übertragen auf Amazon ECR

Diese Seite enthält Anweisungen zum Erstellen einer lokalen Dockerfile, zum Erstellen des Container-Images und zum Hinzufügen zu Amazon Elastic Container Registry (Amazon ECR).

Anmerkung

In den folgenden Beispielen werden die Tags nicht angegeben und das Tag latest wird standardmäßig angewendet. Wenn Sie ein Tag angeben möchten, müssen Sie :tag an das Ende der Image-Namen anhängen. Weitere Informationen finden Sie unter Docker-Image-Tag in der Docker-Dokumentation.

Erstellen einer Dockerfile und Erstellen des Container-Images

Verwenden Sie folgende Anweisungen zum Erstellen einer Dockerfile mit der gewünschten Software und den gewünschten Abhängigkeiten.

So erstellen Sie die Dockerfile
  1. Legen Sie zunächst Ihre Variablen für die folgenden AWS CLI-Befehle fest.

    LOCAL_IMAGE_NAME=local-image-name

    local-image-name ist der Name des Container-Images auf Ihrem lokalen Gerät, das Sie hier definieren.

  2. Erstellen Sie ein textbasiertes Dokument mit Namen Dockerfile, das den Spezifikationen unter Benutzerdefinierte Image-Daten entspricht.

    Dockerfile-Beispiele für unterstützte Anwendungen finden Sie unter Dockerfile-Beispiele.

    Anmerkung

    Wenn Sie Ihr eigenes Image in SageMaker Unified Studio einbringen, müssen Sie die Dockerfile-Spezifikationen im Benutzerhandbuch für Amazon SageMaker Unified Studio befolgen.

    Dockerfile-Beispiele für SageMaker Unified Studio finden Sie im Dockerfile-Beispiel im Benutzerhandbuch für Amazon SageMaker Unified Studio.

  3. Erstellen Sie in dem Verzeichnis, das Ihre Dockerfile enthält, das Docker-Image mit dem folgenden Befehl. Der Punkt (.) gibt an, dass sich die Dockerfile im Kontext des Build-Befehls befinden sollte.

    docker build -t ${LOCAL_IMAGE_NAME} .

    Nach Abschluss des Builds können Sie die Informationen zu Ihrem Container-Image mit dem folgenden Befehl auflisten.

    docker images
  4. (Optional) Sie können Ihr Image mit dem folgenden Befehl testen.

    docker run -it ${LOCAL_IMAGE_NAME}

    In der Ausgabe werden Sie feststellen, dass Ihr Server unter einer URL wie http://127.0.0.1:8888/... läuft. Sie können das Image testen, indem Sie die URL in den Browser kopieren.

    Sollte dies nicht funktionieren, müssen Sie möglicherweise -p port:port in den Befehl „docker run“ einfügen. Diese Option ordnet den freigegebenen Port auf dem Container einem Port auf dem Hostsystem zu. Weitere Informationen zur Docker-Ausführung finden Sie unter Ausführen von Containern in der Docker-Dokumentation.

    Nachdem Sie überprüft haben, dass der Server ordnungsgemäß funktioniert, können Sie den Server anhalten und alle Kernel herunterfahren, bevor Sie fortfahren. Die Anweisungen sind in der Ausgabe sichtbar.

Hinzufügen eines Docker-Images zu Amazon ECR

Um ein Container-Image zu Amazon ECR hinzuzufügen, müssen Sie die folgenden Schritte ausführen.

  • Erstellen Sie ein Amazon-ECR-Repository.

  • Melden Sie sich bei Ihrem Standard-Registry an.

  • Übertragen Sie das Image in das Amazon-ECR-Repository.

Anmerkung

Das Amazon ECR-Repository muss sich in derselben AWS-Region befinden wie die Domain, an die Sie das Image anfügen.

So erstellen Sie ein Container-Image und übertragen es an Amazon ECR
  1. Legen Sie zunächst Ihre Variablen für die folgenden AWS CLI-Befehle fest.

    ACCOUNT_ID=account-id REGION=aws-region ECR_REPO_NAME=ecr-repository-name
    • account-id ist Ihre Konto-ID. Sie finden dies oben rechts auf jeder AWS-Konsolenseite, zum Beispiel in der SageMaker-AI-Konsole.

    • aws-region ist die AWS-Region Ihrer Domain von Amazon SageMaker AI. Sie finden dies oben rechts auf jeder AWS-Konsolenseite,

    • ecr-repository-name ist der Name Ihres Repositorys von Amazon Elastic Container Registry, den Sie hier definieren. Ihre Amazon-ECR-Repositorys finden Sie in der Amazon-ECR-Konsole.

  2. Melden Sie sich bei Amazon ECR und dann bei Docker an.

    aws ecr get-login-password \ --region ${REGION} | \ docker login \ --username AWS \ --password-stdin ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com

    Bei erfolgreicher Authentifizierung erhalten Sie eine Meldung über die erfolgreiche Anmeldung.

    Wichtig

    Bei einem Fehler müssen Sie möglicherweise die neueste AWS CLI-Version installieren bzw. auf diese aktualisieren. Weitere Informationen finden Sie unter Installieren der AWS Command Line Interface im AWS Command Line Interface-Benutzerhandbuch.

  3. Markieren Sie das Image in einem mit Amazon ECR kompatiblen Format, um es in Ihr Repository zu übertragen.

    docker tag \ ${LOCAL_IMAGE_NAME} \ ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/${ECR_REPO_NAME}
  4. Erstellen Sie ein Amazon ECR-Repository unter Verwendung des AWS CLI. Informationen zum Erstellen des Repositorys mithilfe der Amazon-ECR-Konsole finden Sie unter Erstellen eines privaten Amazon-ECR-Repositorys zum Speichern von Images.

    aws ecr create-repository \ --region ${REGION} \ --repository-name ${ECR_REPO_NAME}
  5. Übertragen Sie das Image in Ihr Amazon-ECR-Repository: Sie können das Docker-Image auch markieren.

    docker push ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/${ECR_REPO_NAME}

Sobald das Image erfolgreich zu Ihrem Amazon-ECR-Repository hinzugefügt wurde, können Sie es in der Amazon-ECR-Konsole anzeigen.