Guide de démarrage rapide pour Container Registry

Container Registry est un registre privé d'images de conteneurs qui s'exécute sur Google Cloud.

Ce guide de démarrage rapide vous montre comment :

  • créer une image Docker ;
  • stocker l'image dans le registre Container Registry de votre projet ;
  • sortir l'image du registre Container Registry de votre projet.

Avant de commencer

  1. Connectez-vous à votre compte Google.

    Si vous n'en possédez pas déjà un, vous devez en créer un.

  2. Dans Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Cloud.

    Accéder à la page de sélection du projet

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

  4. Activer l'APIContainer Registry

    Activer l'API

  5. Installez et initialisez le SDK Cloud.
  6. Installez Docker. Si vous utilisez un système d'exploitation basé sur Linux, tel que Ubuntu ou Debian, ajoutez votre nom d'utilisateur au groupe docker afin de pouvoir exécuter Docker sans utiliser la commande sudo :
    sudo usermod -a -G docker ${USER}

    Déconnectez-vous et reconnectez-vous pour que les modifications apportées à la liste des membres du groupe soient appliquées. Si vous utilisez une machine virtuelle, vous devrez peut-être la redémarrer pour que ces modifications prennent effet.

  7. Ouvrez Docker. Pour vérifier que Docker est en cours d'exécution, exécutez la commande Docker suivante, qui renvoie la date et l'heure actuelles :
  8. docker run busybox date

Pour ce guide de démarrage rapide, vous pouvez vous servir de Cloud Shell ou de n'importe quel environnement dans lequel le SDK Cloud est installé.

Créer une image Docker

Pour ce guide de démarrage rapide, générez l'image Docker suivante pour avoir une image à stocker dans Container Registry. L'image Docker contient une petite application Web en Python. Cette application utilise le framework Web Flask pour diffuser une page Web qui affiche le message "Hello, World!"

Pour créer l'image Docker, procédez comme suit :

  1. Créez un répertoire destiné à stocker les trois fichiers d'image Docker.

  2. Dans ce répertoire, créez les trois fichiers suivants : Dockerfile, requirements.txt et app.py. Les exemples ci-dessous décrivent le contenu que vous devez créer pour chacun de ces fichiers :

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)
    

Pour créer l'image Docker, exécutez la commande Docker suivante depuis le répertoire contenant les fichiers de l'image :

docker build -t quickstart-image .
    

Vous avez maintenant créé une image Docker sur votre ordinateur local.

Ajouter l'image dans Container Registry

Configurer docker pour utiliser l'outil de ligne de commande gcloud en tant qu'assistant d'identification

Avant de pouvoir stocker ou extraire des images, vous devez configurer Docker afin qu'il se serve de l'outil de ligne de commande gcloud pour authentifier les requêtes envoyées à Container Registry. Pour ce faire, exécutez la commande suivante (vous n'avez besoin de l'exécuter qu'une seule fois) :

gcloud auth configure-docker
    

Ajouter un tag de nom de registre à l'image

Avant de stocker l'image Docker dans Container Registry, vous devez lui ajouter un tag correspondant à son nom de registre. Cette action permet de configurer la commande docker push grâce à laquelle vous pouvez stocker l'image dans un emplacement précis. L'emplacement d'hôte utilisé dans ce guide de démarrage rapide est gcr.io.

Pour ajouter le tag à l'image Docker, exécutez la commande suivante :

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

où :

  • [PROJECT-ID] est l'ID du projet dans Google Cloud Console, que vous devez ajouter à la commande. Si l'ID du projet contient le signe deux-points (:), consultez la section Projets à l'échelle du domaine.
  • gcr.io correspond au nom d'hôte.
  • quickstart-image est le nom de l'image Docker.
  • tag1 est un tag que vous ajoutez à l'image Docker. Si vous ne spécifiez pas de tag, Docker applique le tag par défaut latest.

Vous êtes maintenant prêt à stocker votre image dans Container Registry.

Stocker l'image dans Container Registry

Une fois que vous avez configuré docker pour utiliser gcloud en tant qu'assistant d'identification et que vous avez ajouté un tag de nom de registre à l'image locale, vous pouvez stocker celle-ci dans Container Registry.

Pour stocker l'image Docker, exécutez la commande suivante :

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

[PROJECT-ID] 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.

Lorsque vous stockez une image dans un nouvel emplacement hôte, le service crée un bucket de stockage sous-jacent unique pour votre projet. Vous pouvez afficher les images hébergées par Container Registry en accédant à Cloud Console ou en saisissant le nom du registre de l'image dans votre navigateur Web : http://gcr.io/[PROJECT-ID]/quickstart-image.

Sortir l'image de Container Registry

Pour extraire l'image de Container Registry vers votre ordinateur local, exécutez la commande suivante :

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

[PROJECT-ID] 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.

Le résultat doit être semblable à ceci :

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
    

Nettoyer

Pour éviter que les ressources utilisées dans ce guide de démarrage rapide soient facturées sur votre compte Google Cloud, procédez comme suit :

Exécutez la commande suivante pour supprimer l'image Docker de Container Registry.

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

[PROJECT-ID] 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.

Étape suivante