Aidez-nous à améliorer le service de livraison de logiciels et faites entendre votre voix en répondant à l'enquête sur l'état du DevOps en 2021.

Transférer et extraire des images

Cette page explique comment transférer et extraire des images de conteneurs.

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

  1. Si le dépôt cible n'existe pas, créez un dépôt.
  2. Vous devez au moins disposer d'un accès Rédacteur à Artifact Registry au dépôt.
  3. Installez Docker si ce n'est pas encore fait.
  4. Configurez l'authentification pour Docker.

Transférer une image

Pour transférer une image locale vers un dépôt Artifact Registry, ajoutez-lui le tag correspondant au nom du dépôt, puis transférez l'image.

Les limites suivantes s'appliquent aux importations d'images volumineuses:

Heure d'importation
Si vous vous authentifiez avec Artifact Registry à l'aide d'un jeton d'accès, celui-ci expire au bout de 60 minutes. Si vous pensez que votre temps d'importation dépassera 60 minutes, utilisez une autre méthode d'authentification.
Taille d'image
La taille maximale de l'artefact est de 5 To.
Artifact Registry n'est pas compatible avec les importations fragmentées de Docker. Certains outils acceptent l'importation d'images volumineuses avec des importations en fragments ou une importation monolithique unique. Vous devez utiliser des importations monolithiques pour transférer des images vers Artifact Registry.

Ajouter des tags à l'image locale

  1. Déterminez le nom de l'image. Le format d'un nom d'image complet est le suivant:

    LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE
    

    où :

    • LOCATION est l'emplacement régional ou multirégional du dépôt où l'image est stockée.

    • PROJECT 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.

    • REPOSITORY est le nom du dépôt où l'image est stockée.

    • IMAGE correspond au nom de l'image. Il peut être différent du nom local de l'image.

    Prenons l'exemple d'une image présentant les caractéristiques suivantes :

    • Emplacement du dépôt : us
    • Nom du dépôt : my-repo
    • ID du projet : my-project
    • Nom de l'image locale : my-image
    • Nom de l'image cible : test-image

    Le nom de l'image pour cet exemple est :

    us-docker.pkg.dev/my-project/my-repo/test-image
    

    Pour en savoir plus sur le format du nom d'image, y compris sur la gestion des projets à l'échelle du domaine, consultez la section Dépôt et noms d'images.

  2. Utilisez la commande suivante pour ajouter un tag à l'image locale avec le nom du dépôt :

    docker tag SOURCE-IMAGE LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE
    

    SOURCE-IMAGE est le nom ou l'ID de l'image locale.

    Cette commande attribue à l'image son nom de dépôt et lui ajoute le tag latest.

    Pour l'image d'exemple de l'étape précédente, vous devez utiliser la commande suivante si l'image locale my-image se trouve dans le répertoire actuel :

    docker tag my-image us-docker.pkg.dev/my-project/my-repo/test-image
    

    Si vous souhaitez appliquer un tag spécifique, utilisez la commande suivante :

    docker tag SOURCE-IMAGE LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE:TAG
    

    Pour utiliser le tag staging avec l'image de l'exemple, vous devez ajouter :staging à la commande :

    docker tag my-image us-docker.pkg.dev/my-project/my-repo/test-image:staging
    

Transférer l'image taguée vers Artifact Registry

Transférez l'image taguée à l'aide de la commande suivante :

docker push LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/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 LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE:TAG

Lorsque vous transférez une image, elle est stockée dans le dépôt spécifié.

Après avoir transféré votre image, vous pouvez effectuer les opérations suivantes :

  • Accédez à Cloud Console pour afficher l'image.

  • Exécutez la commande gcloud pour afficher les tags de l'image et le condensé généré automatiquement :

    gcloud artifacts docker images list \
    LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE [--include-tags]
    

    L'exemple de résultat suivant montre les condensés d'image tronqués, mais la commande renvoie toujours le condensé complet de l'image.

     IMAGE                                                 DIGEST         CREATE_TIME          UPDATE_TIME
      us-west1-docker.pkg.dev/my-project/my-repo/my-image  sha256:85f...  2019-04-10T15:08:45  2019-04-10T15:08:45
      us-west1-docker.pkg.dev/my-project/my-repo/my-image  sha256:238...  2019-04-10T17:23:53  2019-04-10T17:23:53
      us-west1-docker.pkg.dev/my-project/my-repo/my-image  sha256:85f...  2019-04-10T15:08:46  2019-04-10T15:08:46
      ```
    

Extraire des images

Pour extraire des images d'un dépôt, exécutez la commande suivante :

docker pull LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE:TAG

ou

docker pull LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE@IMAGE-DIGEST

où :

  • LOCATION est l'emplacement régional ou multirégional du dépôt où l'image est stockée.

  • PROJECT 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.

  • REPOSITORY est le nom du dépôt où l'image est stockée.

  • IMAGE est le nom de l'image dans le dépôt.

  • TAG est le tag de la version de l'image que vous souhaitez extraire.

  • IMAGE-DIGEST est la valeur de hachage sha256 du contenu de l'image. Chaque version d'une image possède un condensé unique. Dans Google 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.

Prenons l'exemple d'une image présentant les caractéristiques suivantes :

  • Emplacement du dépôt : us
  • Nom du dépôt : my-repo
  • ID du projet : my-project
  • Nom de l'image : test-image
  • Tag : staging

L'image permettant d'extraire l'image est la suivante :

docker pull us-docker.pkg.dev/my-project/my-repo/test-image:staging

Étape suivante