Übertragen Sie das von Docker Hub verteilte Docker-Image in die Google Container-Registrierung und starten Sie die VM basierend auf diesem Image

Hinweis

Dieser Artikel ist ein Memo für mich und nicht gut formatiert. Bitte beachten Sie.

Motivation, einen Artikel zu schreiben

Es ist notwendig, sich mit den folgenden Fällen zu befassen und die Prozedur usw. auszugeben.

--Digdag, Embulk Lassen Sie das Docker-Image zum Erstellen des Servers freigeben (auf Docker Hub)

Referenzseite

Bevor du anfängst

  1. Cloud-Konsolenprojekt Wählen Sie auf der Auswahlseite (https://console.cloud.google.com/projectselector2/home/dashboard) ein Cloud-Projekt aus oder erstellen Sie es.
  2. Stellen Sie sicher, dass die Abrechnung für Ihr Google Cloud-Projekt aktiviert ist. (Referenz)
  3. Aktivieren Sie die Container-Registrierungs-API (https://console.cloud.google.com/flows/enableapi).
  4. Initialisieren Sie mit Cloud SDK installieren.
  5. Installieren Sie Docker (https://docs.docker.com/install/linux/docker-ce/ubuntu/).
  6. Für Ubuntu, Debian usw. ermöglichen wir es, den Befehl docker ohne sudo auszuführen, indem wirsudo usermod -a -G docker $ {USER}+ neu starten

Liste der Verfahren

  1. Ziehen Sie das Docker-Image vom Docker Hub
  2. Schieben Sie das (gezogene) Docker-Image in die Container-Registrierung
  3. Starten Sie die VM basierend auf dem Docker-Image, das an die Containerregistrierung gesendet wurde
  4. Aufräumen, um ein Aufladen zu vermeiden

1. Ziehen Sie das Docker-Image vom Docker Hub

Dieses Mal werden wir Busybox als Beispiel verwenden.

docker pull busybox:latest
# check image
docker image ls
REPOSITORY  TAG     IMAGE ID      CREATED       SIZE
busybox     latest  6d5fcfe5ff17  8 months ago  1.22MB

2. Schieben Sie das (gezogene) Docker-Image in die Container-Registrierung

2.1 Konfigurieren Sie Docker so, dass das Befehlszeilentool gcloud als Authentifizierungshilfe verwendet wird

Unten zitiert von der Referenzseite

Um ein Image zu pushen oder zu ziehen, müssen Sie Docker so konfigurieren, dass Anforderungen an die Containerregistrierung mit dem Befehlszeilentool gcloud authentifiziert werden. Führen Sie dazu den folgenden Befehl aus (Sie müssen ihn nur einmal ausführen):

gcloud auth configure-docker

2.2 Kennzeichnen Sie das Bild mit dem Registrierungsnamen

Docker Push wird normalerweise an Docker Hub gesendet. Wenn Sie an einen bestimmten Speicherort verschieben möchten, wird dies anscheinend durch Umschreiben des Tags des Registrierungsnamens gesteuert.

Zitiert von der Referenzseite

Bevor Sie ein Docker-Image in die Container-Registrierung verschieben, müssen Sie das Image mit einem Registrierungsnamen versehen. Wenn Sie ein Docker-Image mit einem Registrierungsnamen versehen, wird der Docker-Push-Befehl so konfiguriert, dass das Image an einen bestimmten Speicherort verschoben wird. In diesem Schnellstart lautet der Hostspeicherort gcr.io. Führen Sie den folgenden Befehl aus, um das Docker-Image zu kennzeichnen:

docker tag busybox gcr.io/[PROJECT-ID]/busybox:v1
# check img
REPOSITORY                   TAG  IMAGE ID      CREATED       SIZE
gcr.io/[PROJECT-ID]/busybox  v1   6d5fcfe5ff17  8 months ago  1.22MB

2.3. Schieben Sie das Bild in die Containerregistrierung

docker push gcr.io/[PROJECT-ID]/busybox:v1

3. Starten Sie die VM basierend auf dem Docker-Image, das an die Containerregistrierung gesendet wurde

* Stellen Sie sich einen Fall vor, in dem die VM einmal mit der GUI </ font> gestartet wird

Wechseln Sie vom GCP-Dashboard-Bildschirm zum Startbildschirm der VM-Instanz, indem Sie dem Ablauf "ComputeEngine-> VM-Instanz" folgen.

Geben Sie auf dem VM-Startbildschirm ein, dass eine Instanz aus dem Container-Image erstellt wird (siehe Abbildung unten).

image.png

Beschreiben Sie unter "Containerbild" den Pfad des vorab verschobenen Containerbilds, wie im Beispiel beschrieben. Wenn Sie das in ContainerRagistry gespeicherte Container-Image angeben, lautet der Pfad "gcr.io / ...".

  • Standardmäßig erhält das im GCR im selben Projekt wie diese VM gespeicherte Image die Berechtigung zum Abrufen, sodass die Zugriffsberechtigung nicht angepasst werden muss. Ist dies nicht der Fall, muss dem Dienstkonto, das versucht, das Image abzurufen, der entsprechende Zugriff auf den GCS-Bucket gewährt werden, der das Container-Image enthält. (Referenz)

Sie müssen lediglich die Schaltfläche zum Erstellen der VM-Instanz drücken.

4. Aufräumen, um ein Aufladen zu vermeiden

4.1 Bereinigung der Containerregistrierung

Laut Verwendung der Containerregistrierung mit Google Cloud (https://cloud.google.com/container-registry/docs/using-with-google-cloud-platform)

gcloud container images delete gcr.io/[PROJECT-ID]/busybox:v1 --force-delete-tags

Es wird gesagt, dass es mit ausgeführt werden kann, aber das Docker-Image konnte aufgrund des folgenden Fehlers nicht aus dem Befehl "gcloud" gelöscht werden.

ERROR: (gcloud.container.images.delete) [gcr.io/[PROJECT-ID]/busybox:v1] is not a valid name. Expected tag in the form "base:tag" or "tag" or digest in the form "sha256:<digest>"

(Wird derzeit untersucht ...)

Löschen Sie dieses Mal das entsprechende Bild von GCR aus der Google Cloud Console.

Ich gehe, aber ich kann es nicht finden. .. .. .. (?)

4.2. Berechnen Sie die Motorbereinigung

Löschen Sie die VM-Instanz in der Google Cloud Console.

Recommended Posts

Übertragen Sie das von Docker Hub verteilte Docker-Image in die Google Container-Registrierung und starten Sie die VM basierend auf diesem Image
[GCP] Bis Sie das lokale Docker-Image in die Container-Registrierung verschieben
Schieben Sie das Image mit Jib zum Docker-Hub
Testen, erstellen und verschieben Sie Docker-Images mithilfe von GitHub-Aktionen in die GitHub-Container-Registrierung
Schritte zum Verschieben eines Docker-Images in die GitHub Container Registry (ghcr.io)
Die Geschichte, wie ein Docker-Container mit GitHub-Aktionen in die GitHub-Paketregistrierung und den Docker-Hub verschoben wird
Minimaler Workflow zum Verschieben des Docker-Images in die Github-Container-Registrierung mit Github-Aktionen
Docker Push zur GitHub Container Registry (ghcr.io)
So mounten Sie den Speicherort der Batchdatei über WSL2 und starten den Docker-Container
Übertragen Sie ein Docker-Image von GitHub Actions in die GitHub Container Registry
Organisieren Sie die Kommunikation in einer Umgebung, in der verschiedene Ressourcen auf dem Hostcomputer und dem Docker-Container verwendet werden
Erstellen wir einen Docker-Container, der SSH auf die Mindestkonfiguration von CentOS 8 ausführen kann
Bis die Docker-Umgebung erstellt und der Ubuntu-Container gestartet und gestoppt wurde
Installieren Sie Ubuntu20.04 auf RaspberryPi 4 und erstellen Sie Kubernetes, um den Container auszuführen
Erstellen Sie ein Docker-Image für redoc-cli und registrieren Sie es auf Docker Hub
Mit Pg_resetwal kann der PostgreSQL Docker-Container gestartet werden, wenn WAL fehlerhaft ist und nicht gestartet werden kann.
2. Erstellen Sie ein Docker-Image und registrieren Sie die Registrierung
Warten Sie, bis PostgreSQL mit Docker gestartet ist, und starten Sie dann den WEB-Dienst
Shell-Skript, das ein Docker-Image erstellt und an ECR weiterleitet
[Docker] Erstellen, wenn der Quellcode auf dem Container gebunden ist
Erstellt ein Docker-Container-Image für einen OpenLDAP-Server basierend auf Fedora
Erstellen Sie ein Container-Image für Kibanas arm64 und registrieren Sie es in der GitHub-Container-Registrierung. Starten Sie Elastic Stack mit Docker Compose auf Raspberry Pi 4 (64 Bit).