Transmission d'images à l'aide de l'interface de ligne de commande Docker

Découvrez comment pousser des images vers le registre de conteneurs à l'aide de l'interface de ligne de commande Docker.

Vous utilisez l'interface de ligne de commande Docker pour pousser des images vers Oracle Cloud Infrastructure Registry (également appelée Container Registry).

Pour pousser une image, vous devez d'abord utiliser la commande docker tag pour créer une copie de l'image source locale en tant que nouvelle image (la nouvelle image est en fait une simple référence à l'image source existante). En tant que nom de la nouvelle image, vous spécifiez le chemin d'accès complet à l'emplacement cible dans le registre de conteneurs où vous souhaitez pousser l'image, y compris le nom d'un référentiel.

Par exemple, supposons que vous disposiez d'une image locale nommée acme-web-app:latest (le nom de l'image comprenant le nom du référentiel acme-web-app et le marqueur d'image latest). Disons que vous voulez pousser cette image vers le registre de conteneurs dans un référentiel appelé project01/acme-web-app avec un identificateur de version de v2.0.test, dans la région Ashburn de la location acme-dev. Lorsque vous utilisez la commande docker tag, vous nommez la nouvelle image avec le chemin d'accès complet vers sa destination, dans le format <registry-domain>/<tenancy-namespace>/<repo-name>:<version>. Dans ce cas, vous nommez la nouvelle image ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp/project01/acme-web-app:v2.0.test. Par la suite, lorsque vous utilisez la commande docker push, le nom de l'image garantit qu'elle est poussée vers la destination correcte.

Vos autorisations contrôlent les images que vous pouvez pousser vers le registre de conteneurs (voir Politiques pour contrôler l'accès aux référentiels). Vous pouvez pousser des images vers les référentiels que vous avez créés (voir Création d'un référentiel). Vous pouvez également pousser des images vers des référentiels auxquels les groupes dont vous êtes membre sont autorisés à accéder par des politiques d'identité appropriées. Si vous êtes membre du groupe Administrateurs, vous pouvez pousser des images vers tout référentiel de la location.

Notez que les instructions de cette rubrique supposent que le référentiel vers lequel vous souhaitez pousser des images existe déjà. Ce sera généralement le cas, mais il n'est pas toujours nécessaire de le faire (voir Création d'un référentiel).

Note

Container Registry est un registre conforme à Open Container Initiative. Par conséquent, vous pouvez stocker tous les artefacts conformes aux spécifications Open Container Initiative, tels que les images Docker, les listes de manifestes (parfois appelées images à architecture multiple) et les graphiques Helm. Les instructions de cette rubrique supposent que vous stockez des images Docker et que vous utilisez l'interface de ligne de commande Docker.

Pour pousser des images vers le registre de conteneurs à l'aide de l'interface de ligne de commande Docker :

  1. Si vous avez déjà un jeton d'authentification, passez à l'étape suivante. Sinon :

    1. Dans l'angle supérieur droit de la console, ouvrez le menu Profil Icône du menu Profil, puis sélectionnez Paramètres de l'utilisateur (ou Mon profil ou le nom de votre compte) pour afficher les détails.

    2. Dans la page Jetons d'authentification, sélectionnez Générer un jeton.

    3. Entrez une description conviviale pour le jeton d'authentification. Évitez d'entrer des informations confidentielles.

    4. Sélectionnez Générer un jeton. Le nouveau jeton d'authentification s'affiche.

    5. Copiez le jeton d'authentification immédiatement vers un emplacement sécurisé à partir duquel vous pourrez l'extraire ultérieurement, car vous ne le verrez pas de nouveau dans la console.

    6. Fermez la boîte de dialogue Générer un jeton.

  2. Dans une fenêtre de terminal sur l'ordinateur client exécutant Docker, connectez-vous au registre de conteneurs en entrant docker login <registry-domain>, où <registry-domain> inclut une clé de région ou un identificateur de région pour la région du registre de conteneurs que vous utilisez. Par exemple, docker login ocir.us-ashburn-1.oci.oraclecloud.com. Voir Disponibilité par région.

  3. Lorsque vous êtes invité à entrer un nom d'utilisateur, entrez-le dans le format <tenancy-namespace>/<username>, où <tenancy-namespace> est la chaîne d'espace de noms du stockage d'objets générée automatiquement de votre location (présentée dans la page des informations sur la location). Par exemple, ansh81vru1zp/jdoe@acme.com.

    Si votre location est fédérée avec Oracle Identity Cloud Service, utilisez le format <tenancy-namespace>/<domain-name>/<username>. Pour les utilisateurs fédérés, <domain-name>/<username> s'affiche dans le menu Profil Icône du menu Profil de la console. Par exemple, si la chaîne d'espace de noms de votre location est ansh81vru1zp et que votre location est fédérée avec Oracle Identity Cloud Service, et que votre nom d'utilisateur est jdoe@acme.com, entrez ansh81vru1zp/oracleidentitycloudservice/jdoe@acme.com

  4. Lorsque vous êtes invité à entrer un mot de passe, entrez le jeton d'authentification copié précédemment.

  5. Recherchez l'image sur l'ordinateur client que vous voulez pousser :

    1. Dans une fenêtre de terminal de votre ordinateur client, entrez docker images pour lister les images disponibles.

      Par exemple :

          
      $ docker images
      REPOSITORY        TAG              IMAGE ID      CREATED       SIZE
      acme-web-app      latest           8e0506e14874  2 hours ago   162.6 MB
      acme-web-app      v1.0             7d9495d03763  2 hours ago   162.6 MB
      <none>            <none>           6ebd328f833d  5 hours ago   162.6 MB
      hello-world       latest           80b84820d442  5 weeks ago   890 B
      					
    2. Recherchez l'image locale sur l'ordinateur client que vous voulez pousser vers le registre de conteneurs.

      Dans la sortie de la commande docker images, recherchez l'image spécifique à pousser. Vous devrez identifier de manière unique cette image plus tard de l'une des façons suivantes :

      • À l'aide de son ID.

      • Utilisation de son nom d'image (son nom de référentiel et sa balise d'image séparés par un deux-points).

      Par exemple, sur l'ordinateur client, vous pouvez avoir une image acme-web-app. Dans la sortie de la commande docker images, recherchez l'image acme-web-app que vous voulez pousser. Vous pouvez identifier de manière unique cette image de l'une des façons suivantes :

      • À l'aide de son ID (par exemple, 8e0506e14874).

      • Utilisation de son nom d'image (son nom de référentiel et sa balise d'image séparés par un deux-points, par exemple acme-web-app:latest).

    3. Utilisez la commande docker tag pour créer une copie de l'image initiale en tant que nouvelle image (la nouvelle image est en fait une simple référence à l'image initiale existante). En tant que nom (ou marqueur) pour la nouvelle image, vous spécifiez le chemin d'accès complet à l'emplacement cible dans le registre de conteneurs où vous voulez pousser l'image, en entrant :

      docker tag <image-identifier> <target-tag>

      où :

      • <image-identifier> identifie de manière unique l'image initiale, à l'aide de l'ID de l'image (par exemple, 8e0506e14874), ou à l'aide du nom de l'image (son nom de référentiel initial et son marqueur d'image séparés par un deux-points, par exemple acme-web-app:latest).

      • <target-tag> est le chemin d'accès complet à l'emplacement cible dans le registre de conteneurs où vous voulez pousser l'image, dans le format <registry-domain>/<tenancy-namespace>/<repo-name>:<version> où :

        • <registry-domain> inclut la clé de région ou l'identificateur de région pour la région de registre de conteneurs que vous utilisez. Par exemple : ocir.us-ashburn-1.oci.oraclecloud.com. Voir Domaine de registre.

        • <tenancy-namespace> est la chaîne d'espace de noms du stockage d'objets générée automatiquement de la location qui détient le référentiel vers lequel vous voulez pousser l'image (présentée sur la page des informations sur la location). Par exemple, l'espace de noms de la location acme-dev pourrait être ansh81vru1zp. Notez que, pour certaines locations plus anciennes, la chaîne d'espace de noms peut être identique au nom de la location, tout en minuscules (par exemple, acme-dev). Notez également que votre utilisateur doit avoir accès à la location.

        • <repo-name> est le nom du référentiel cible vers lequel vous voulez pousser l'image (par exemple, project01/acme-web-app). Notez que vous spécifiez généralement un référentiel qui existe déjà, mais qu'il n'est pas toujours nécessaire de le faire (voir Création d'un référentiel).

        • <version> est un identificateur de version que vous voulez donner à l'image dans le registre de conteneurs (par exemple, v2.0.test).

      Par exemple, en combinant les exemples précédents, vous pourriez entrer :

      docker tag 8e0506e14874 ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp/project01/acme-web-app:v2.0.test
  6. Vérifiez que l'image Docker a été correctement marquée sur l'ordinateur client en entrant docker images et vérifiez que la liste des images comprend une image avec le marqueur que vous avez spécifié.

    Par exemple :

    
    $ docker images
    REPOSITORY                                                                TAG                   IMAGE ID      CREATED       SIZE
    ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp/project01/acme-web-app v2.0.test             8e0506e14874  1 minute ago  162.6 MB
    acme-web-app                                                              latest                8e0506e14874  2 hours ago   162.6 MB
    acme-web-app                                                              v1.0                  7d9495d03763  2 hours ago   162.6 MB
    <none>                                                                    <none>                6ebd328f833d  5 hours ago   162.6 MB
    hello-world                                                               latest                80b84820d442  5 weeks ago   890 B
    					
  7. Poussez l'image Docker de l'ordinateur client vers le registre de conteneurs en entrant :

    docker push <target-tag>

    <target-tag> est dans le format <registry-domain>/<tenancy-namespace>/<repo-name>:<version> où :

    • <registry-domain> inclut la clé de région ou l'identificateur de région pour la région de registre de conteneurs que vous utilisez. Par exemple : ocir.us-ashburn-1.oci.oraclecloud.com. Voir Domaine de registre.

    • <tenancy-namespace> est la chaîne d'espace de noms du stockage d'objets générée automatiquement de la location qui détient le référentiel vers lequel vous voulez pousser l'image (présentée sur la page des informations sur la location). Par exemple, l'espace de noms de la location acme-dev pourrait être ansh81vru1zp. Notez que, pour certaines locations plus anciennes, la chaîne d'espace de noms peut être identique au nom de la location, tout en minuscules (par exemple, acme-dev). Notez également que votre utilisateur doit avoir accès à la location.

    • <repo-name> est le nom du référentiel cible vers lequel vous voulez pousser l'image (par exemple, project01/acme-web-app). Notez que vous spécifiez généralement un référentiel qui existe déjà, mais qu'il n'est pas toujours nécessaire de le faire (voir Création d'un référentiel).

    • <version> est l'identificateur de version à donner à l'image dans le registre de conteneurs (par exemple, v2.0.test).

    Par exemple :

    docker push ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp/project01/acme-web-app:v2.0.test