Schnellstart für Container Registry

Container Registry ist eine private Container-Image-Registry, die in Google Cloud ausgeführt wird.

In dieser Schnellstartanleitung werden folgende Verfahren erläutert:

  • Docker-Image erstellen
  • Image in die Google Container Registry Ihres Projekts hochladen
  • Image aus der Google Container Registry Ihres Projekts herunterladen

Hinweise

  1. Melden Sie sich bei Ihrem Google-Konto an.

    Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.

  2. Wählen Sie in der Cloud Console auf der Seite für die Projektauswahl ein Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

  4. Aktivieren Sie die Container Registry API.

    Aktivieren Sie die API

  5. Installieren und initialisieren Sie das Cloud SDK.
  6. Installieren Sie Docker. Wenn Sie ein Linux-basiertes Betriebssystem wie Ubuntu oder Debian verwenden, fügen Sie der Gruppe docker Ihren Nutzernamen hinzu, damit Sie Docker ohne sudo ausführen können:
    sudo usermod -a -G docker ${USER}

    Melden Sie sich ab und wieder an, damit Änderungen an der Gruppenmitgliedschaft wirksam werden. Wenn Sie eine virtuelle Maschine verwenden, müssen Sie die virtuelle Maschine unter Umständen neu starten, damit die Mitgliedschaftsänderungen wirksam werden.

  7. Öffnen Sie Docker. Prüfen Sie mit dem folgenden Docker-Befehl, durch den die aktuelle Zeit und das aktuelle Datum zurückgegeben werden, ob Docker ausgeführt wird:
  8. docker run busybox date

Für diese Kurzanleitung können Sie entweder Cloud Shell oder eine Umgebung verwenden, in der das Cloud SDK installiert ist.

Docker-Image erstellen

Erstellen Sie für diesen Schnellstart das folgende Docker-Image, damit Sie ein Image in Container Registry hochladen können. Dieses Docker-Image enthält eine kleine Python-Webanwendung. Diese Anwendung verwendet das Web-Framework Flask, um eine Webseite mit der Nachricht "Hello, World!" bereitzustellen.

So erstellen Sie das Docker-Image:

  1. Erstellen Sie ein Verzeichnis zum Speichern Ihrer drei Docker-Image-Dateien.

  2. Erstellen Sie in diesem Verzeichnis drei Dateien: Dockerfile, requirements.txt und app.py. In den folgenden Beispielen sehen Sie, was Sie in den Inhalt jeder Datei einfügen müssen:

Dockerfile

# The file Dockerfile defines the image's environment
# Import Python runtime and set up working directory
FROM python:3.5-slim
WORKDIR /app
ADD . /app

# Install any necessary dependencies
RUN pip install -r requirements.txt

# Open port 80 for serving the webpage
EXPOSE 80

# Run app.py when the container launches
CMD ["python", "app.py"]

requirements.txt

# The file requirements.txt defines the image's dependencies
Flask

app.py

# The Docker image contains the following code in app.py
from flask import Flask
import os
import socket

app = Flask(__name__)

@app.route("/")
def hello():
    html = "<h3>Hello, World!</h3>"
    return html

if __name__ == "__main__":
  app.run(host='0.0.0.0', port=80)

Führen Sie zum Erstellen des Docker-Images den folgenden Docker-Befehl in dem Verzeichnis aus, das die Image-Dateien enthält:

docker build -t quickstart-image .

Sie haben jetzt auf Ihrem lokalen Rechner ein Docker-Image erstellt.

Image zu Container Registry hinzufügen

docker für die Verwendung des gcloud-Befehlszeilentools als Credential Helper konfigurieren

Bevor Sie Images hoch- oder herunterladen können, müssen Sie Docker für die Verwendung des gcloud-Befehlszeilentools konfigurieren, um Anfragen an Container Registry zu authentifizieren. Führen Sie dazu folgenden Befehl aus (nur einmal erforderlich):

gcloud auth configure-docker

Image mit Registry-Namen taggen

Bevor Sie das Docker-Image in Container Registry hochladen, müssen Sie es mit seinem Registry-Namen taggen. Wenn Sie das Docker-Image mit einem Registry-Namen taggen, wird der Befehl docker push zum Hochladen des Images an einen bestimmten Standort konfiguriert. In dieser Kurzanleitung ist der Hoststandort gcr.io.

Führen Sie zum Taggen des Docker-Images den folgenden Befehl aus:

docker tag quickstart-image gcr.io/[PROJECT-ID]/quickstart-image:tag1

Hierbei gilt:

  • [PROJECT-ID] ist Ihre Projekt-ID der Google Cloud Console, die Sie Ihrem Befehl hinzufügen müssen. Wenn die Projekt-ID einen Doppelpunkt (:) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.
  • gcr.io ist der Hostname.
  • quickstart-image ist der Name des Docker-Images.
  • tag1 ist ein Tag, das Sie dem Docker-Image hinzufügen. Wenn Sie kein Tag angegeben haben, wendet Docker das Standard-Tag latest an.

Jetzt können Sie das Image in Container Registry hochladen.

Image in Container Registry hochladen

Nachdem Sie docker zur Verwendung von gcloud als Credential Helper konfiguriert und das lokale Image mit dem Registry-Namen getaggt haben, können Sie es in Container Registry hochladen.

Führen Sie den folgenden Befehl aus, um das Docker-Image hochzuladen:

docker push gcr.io/[PROJECT-ID]/quickstart-image:tag1

Dabei ist [PROJECT-ID] Ihre Projekt-ID der Google Cloud Console. Wenn die Projekt-ID einen Doppelpunkt (:) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.

Wenn Sie ein Image in einen neuen Hoststandort hochladen, erstellt der Dienst den zugrunde liegenden Speicher-Bucket ausschließlich für Ihr Projekt. Sie können von Container Registry gehostete Images in der Cloud Console oder durch Eingeben des Registry-Namens des Images in Ihrem Webbrowser ansehen: http://gcr.io/[PROJECT-ID]/quickstart-image

Image aus Container Registry herunterladen

Führen Sie den folgenden Befehl aus, um das Image aus Container Registry auf Ihren lokalen Rechner herunterzuladen:

docker pull gcr.io/[PROJECT-ID]/quickstart-image:tag1

Dabei ist [PROJECT-ID] Ihre Projekt-ID der Google Cloud Console. Wenn die Projekt-ID einen Doppelpunkt (:) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.

Die Ausgabe sollte in etwa so aussehen:

latest: Pulling from [PROJECT-ID]/quickstart-image:tag1
Digest: sha256:70c42...
Status: Image is up to date for gcr.io/[PROJECT-ID]/quickstart-image:tag1

Bereinigen

Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud-Konto die in dieser Kurzanleitung verwendeten Ressourcen in Rechnung gestellt werden:

Führen Sie den folgenden Befehl aus, um das Docker-Image in Container Registry zu löschen:

gcloud container images delete gcr.io/[PROJECT-ID]/quickstart-image:tag1 --force-delete-tags

Dabei ist [PROJECT-ID] Ihre Projekt-ID der Google Cloud Console. Wenn die Projekt-ID einen Doppelpunkt (:) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.

Nächste Schritte