Poussez l'image Docker distribuée par Docker Hub vers Google Container Registry et démarrez la VM en fonction de cette image

Remarque

Cet article est un mémo pour moi et n'est pas bien formaté. Notez s'il vous plaît.

Motivation pour écrire un article

Il est nécessaire de traiter les cas suivants et de sortir la procédure, etc.

--Digdag, Embulk Avoir l'image Docker pour la construction du serveur partagée (sur Docker Hub) --Utilisez-le pour configurer une VM GCP et créer un serveur

Page de référence

Avant de commencer

  1. Projet Cloud Console Sur la page Selector (https://console.cloud.google.com/projectselector2/home/dashboard), sélectionnez ou créez un projet Cloud.
  2. Assurez-vous que la facturation est activée pour votre projet Google Cloud. (Référence)
  3. Activez l'API Container Registry (https://console.cloud.google.com/flows/enableapi).
  4. Initialisez avec Install Cloud SDK.
  5. Installez Docker (https://docs.docker.com/install/linux/docker-ce/ubuntu/).
  6. Pour Ubuntu, Debian, etc., rendons possible l'exécution de la commande docker sans sudo en redémarrantsudo usermod -a -G docker $ {USER}+

Liste des procédures

  1. Tirez l'image Docker du Docker Hub
  2. Poussez l'image Docker (extraite) vers Container Registry
  3. Démarrez la machine virtuelle en fonction de l'image Docker poussée vers Container Registry
  4. Nettoyez pour éviter d'être chargé

1. Tirez l'image Docker du Docker Hub

Cette fois, nous utiliserons busybox comme exemple.

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

2. Poussez l'image Docker (extraite) vers Container Registry

2.1. Configurer docker pour utiliser l'outil de ligne de commande gcloud comme aide à l'authentification

Ci-dessous, cité de la page de référence

Pour pousser ou extraire une image, vous devez configurer Docker pour authentifier les demandes auprès de Container Registry à l'aide de l'outil de ligne de commande gcloud. Pour ce faire, exécutez la commande suivante (vous ne devez l'exécuter qu'une seule fois):

gcloud auth configure-docker

2.2. Marquer l'image avec le nom du registre

docker push pousse normalement vers Docker Hub. Si vous souhaitez pousser vers un emplacement spécifique, il semble être contrôlé en réécrivant la balise du nom du registre.

Cité de la page de référence

Avant de pousser une image Docker vers Container Registry, vous devez marquer l'image avec un nom de registre. Lorsque vous marquez une image Docker avec un nom de registre, la commande push docker est configurée pour pousser l'image vers un emplacement spécifique. Dans ce démarrage rapide, l'emplacement de l'hôte est gcr.io. Pour baliser l'image Docker, exécutez la commande suivante:

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. Pousser l'image vers Container Registry

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

3. Démarrez la machine virtuelle en fonction de l'image Docker poussée vers Container Registry

* Considérons un cas où la VM est démarrée une fois avec GUI </ font>

À partir de l'écran du tableau de bord GCP, passez à l'écran de démarrage de l'instance de VM en suivant le flux ComputeEngine-> VM instance.

Sur l'écran de démarrage de la VM, indiquez qu'une instance sera créée à partir de l'image du conteneur (voir la figure ci-dessous).

image.png

Dans image conteneur, décrivez le chemin de l'image conteneur poussée à l'avance comme décrit dans l'exemple. Lors de la spécification de l'image de conteneur stockée dans ContainerRagistry, le chemin est gcr.io / ....

  • Par défaut, l'image enregistrée dans GCR dans le même projet que cette VM est autorisée à extraire, il n'est donc pas nécessaire d'ajuster l'autorité d'accès. Si ce n'est pas le cas, le compte de service qui tente d'extraire l'image doit disposer de l'accès approprié au compartiment GCS contenant l'image du conteneur. (Référence)

Tout ce que vous avez à faire est d'appuyer sur le bouton de création d'instance de VM.

4. Nettoyez pour éviter d'être chargé

4.1. Nettoyage du registre des conteneurs

Selon l'utilisation de Container Registry avec 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

On dit qu'il peut être exécuté avec, mais l'image Docker n'a pas pu être supprimée de la commande gcloud en raison de l'erreur suivante.

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>"

(Actuellement sous enquête ...)

Cette fois, supprimez l'image correspondante de GCR de Google Cloud Console.

J'y vais, mais je ne le trouve pas. .. .. .. (?)

4.2. Nettoyage de Compute Engine

Supprimez l'instance de VM dans Google Cloud Console.

Recommended Posts

Poussez l'image Docker distribuée par Docker Hub vers Google Container Registry et démarrez la VM en fonction de cette image
[GCP] Jusqu'à ce que vous transmettiez l'image Docker locale à Container Registry
Poussez l'image vers le hub docker à l'aide de Jib
Tester, créer et pousser des images Docker vers GitHub Container Registry à l'aide d'actions GitHub
Étapes pour pousser une image Docker vers GitHub Container Registry (ghcr.io)
L'histoire du transfert d'un conteneur Docker vers le registre de packages GitHub et Docker Hub avec des actions GitHub
Flux de travail minimal pour pousser l'image Docker vers Github Container Registry avec des actions Github
Docker push vers GitHub Container Registry (ghcr.io)
Comment monter l'emplacement du fichier de commandes via WSL2 et démarrer le conteneur Docker
Transférer une image Docker des actions GitHub vers GitHub Container Registry
Organisez la communication dans un environnement qui utilise diverses ressources sur la machine hôte et le conteneur Docker
Créons un conteneur Docker qui peut SSH à la configuration minimale de CentOS 8
Jusqu'à ce que l'environnement docker soit créé et que le conteneur Ubuntu soit démarré et arrêté
Installez Ubuntu20.04 sur RaspberryPi 4 et compilez Kubernetes pour exécuter le conteneur
Créez une image Docker pour redoc-cli et enregistrez-la sur Docker Hub
Pg_resetwal peut être utilisé pour démarrer le conteneur Docker PostgreSQL lorsque WAL est cassé et ne peut pas être démarré.
2. Créez une image Docker et enregistrez le registre
Attendez que PostgreSQL démarre avec Docker, puis démarrez le service WEB
Script Shell qui construit une image Docker et la pousse vers ECR
[Docker] Comment créer lorsque le code source est monté en liaison sur le conteneur
Création d'une image de conteneur Docker pour un serveur OpenLDAP basé sur Fedora
Créez une image de conteneur pour l'arm64 de Kibana et enregistrez-la dans le registre de conteneurs GitHub. Démarrez Elastic Stack avec Docker Compose sur Raspberry Pi 4 (64 bits)