Artifact Registry est un service universel de gestion de packages compatible avec les conteneurs et d'autres formats. Découvrez comment effectuer une transition depuis Container Registry pour plus de flexibilité et de contrôle sur vos artefacts.

Transférer et extraire des images

L'envoi (importation) et l'extraction (téléchargement) d'images représentent deux des tâches Container Registry les plus courantes.

Pour découvrir comment répertorier des images, leur ajouter des tags et les supprimer, consultez la page Gérer les images.

Avant de commencer

Vous devez disposer des éléments suivants :

  1. Vous avez activé Container Registry dans votre projet.

  2. Vous avez installé et configuré Docker.

  3. Vous avez vérifié que vous disposez des autorisations permettant de transférer et d'extraire des images.

Transférer une image vers un registre

Pour transférer une image locale vers Container Registry, vous devez d'abord lui ajouter un tag correspondant au nom du registre, puis transférer l'image.

La première image que vous transférez sur un hôte multirégional crée le bucket de stockage pour le nom de cet hôte dans votre projet Google Cloud.

Ajouter un tag de nom de registre à l'image locale

  1. Déterminez le nom de registre :

    1. Choisissez un nom d'hôte, qui spécifie l'emplacement où les images sont stockées.

      • gcr.io héberge les images dans des centres de données aux États-Unis, mais cet emplacement peut être amené à changer par la suite.
      • us.gcr.io héberge les images dans des centres de données aux États-Unis, dans un bucket de stockage distinct de celui utilisé pour les images hébergées par gcr.io.
      • eu.gcr.io héberge les images dans l'Union européenne.
      • asia.gcr.io héberge les images dans des centres de données en Asie.

      Ces emplacements multirégionaux hébergent les buckets de stockage Cloud Storage. Lorsque vous transférez une image vers un registre avec un nouveau nom d'hôte, Container Registry crée un bucket de stockage dans l'emplacement multirégional spécifié. Ce bucket forme le stockage sous-jacent du registre. Dans un projet, tous les registres portant le même nom d'hôte partagent un bucket de stockage.

      Dans la console, le nom d'hôte des images apparaîtra sous Emplacement.

    2. Choisissez un nom d'image, qui peut différer du nom de l'image sur votre ordinateur local.

    3. Combinez le nom d'hôte, l'ID de votre projet dans Google Cloud Console et le nom de l'image :

      HOSTNAME/PROJECT-ID/IMAGE
      

      Si l'ID du projet contient le signe deux-points (:), consultez la section Projets à l'échelle du domaine.

  2. Ajoutez à l'image locale le tag correspondant à son nom de registre, à l'aide de la commande suivante :

    docker tag SOURCE_IMAGE HOSTNAME/PROJECT-ID/IMAGE
    

    SOURCE_IMAGE est le nom ou l'ID de l'image locale.

    Cette commande attribue à l'image son nom de registre et lui ajoute le tag latest. Si vous souhaitez appliquer un tag différent, exécutez la commande suivante :

    docker tag SOURCE_IMAGE HOSTNAME/PROJECT-ID/IMAGE:TAG
    

Transférer l'image avec son tag vers Container Registry

L'assistant d'identification Docker est le moyen le plus simple de configurer Docker pour vous authentifier directement auprès de Container Registry. Vous pouvez ensuite exécuter la commande docker pour ajouter un tag, ou encore pour transférer et extraire des images. Vous pouvez également utiliser les bibliothèques clientes pour gérer les images de conteneurs ou interagir directement avec l'API Docker.

Transférez l'image avec son tag vers Container Registry en exécutant la commande suivante :

docker push HOSTNAME/PROJECT-ID/IMAGE

Cette commande transfère l'image qui possède le tag latest. Si vous souhaitez transférer une image avec un autre tag, exécutez la commande suivante :

docker push HOSTNAME/PROJECT-ID/IMAGE:TAG

Lorsque vous transférez une image vers un registre avec un nouveau nom d'hôte, Container Registry crée un bucket de stockage dans l'emplacement multirégional spécifié. Après avoir transféré votre image, vous pouvez effectuer les opérations suivantes :

  • Accéder à Cloud Console pour consulter le registre et afficher l'image

  • Exécuter gcloud container images list-tags pour afficher le ou les tags de l'image, ainsi que le condensé généré automatiquement :

    gcloud container images list-tags HOSTNAME/PROJECT-ID/IMAGE
    

    Le résultat de la commande ressemble à ce qui suit :

    DIGEST        TAGS        TIMESTAMP
    44bde...      test        2017-..-..
    

Extraire des images d'un registre

Pour extraire une image de Container Registry, exécutez la commande :

docker pull HOSTNAME/PROJECT-ID/IMAGE:TAG

ou

docker pull HOSTNAME/PROJECT-ID/IMAGE@IMAGE_DIGEST

où :

  • HOSTNAME est répertorié sous Emplacement dans la console. Il s'agit de l'une des quatre options suivantes : gcr.io, us.gcr.io, eu.gcr.io ou asia.gcr.io.
  • HOSTNAME est l'ID du projet dans Google Cloud Console. Si l'ID du projet contient le signe deux-points (:), consultez la section Projets à l'échelle du domaine.
  • IMAGE est le nom de l'image dans Container Registry.
  • TAG est le tag appliqué à l'image. Dans un registre, les tags sont uniques à une image.
  • IMAGE_DIGEST est la valeur de hachage sha256 du contenu de l'image. Dans la Cloud Console, cliquez sur une image spécifique pour voir ses métadonnées. Le condensé y apparaît sous l'intitulé Condensé de l'image.

Pour obtenir la commande d'extraction correspondant à une image spécifique, procédez comme suit :

  1. Cliquez sur le nom d'une image pour accéder au registre spécifique.

  2. Dans le registre, cochez la case à côté de la version de l'image que vous souhaitez extraire.

  3. Cliquez sur AFFICHER LA COMMANDE D'EXTRACTION en haut de la page.

  4. Copiez la commande d'extraction, qui identifie l'image à l'aide du tag ou du condensé.

Étapes suivantes