Propagation d'images à l'aide de l'interface de ligne de commande Docker
Découvrez comment propager des images vers Container Registry à l'aide de l'interface de ligne de commande Docker.
L'interface de ligne de commande Docker vous permet de propager des images vers Oracle Cloud Infrastructure Registry (également appelé Container Registry).
Pour propager une image, vous utilisez d'abord la commande docker tag
afin de créer une copie de l'image source locale en tant que nouvelle image (la nouvelle image est en fait simplement une référence à l'image source existante). En tant que nom de la nouvelle image, vous indiquez le chemin qualifié complet de l'emplacement cible dans Container Registry vers lequel propager l'image, y compris le nom d'un référentiel.
Par exemple, supposons que vous disposez d'une image locale nommée acme-web-app:latest
(nom d'image comprenant le nom de référentiel de acme-web-app
et la balise d'image de latest
). Vous voulez propager cette image vers Container Registry 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 qualifié complet de la destination au format <registry-domain>/<tenancy-namespace>/<repo-name>:<version>
. Dans ce cas, vous devez donc nommer la nouvelle image ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp/project01/acme-web-app:v2.0.test
. Ensuite, lorsque vous utilisez la commande docker push
, le nom de l'image garantit qu'elle est propagée vers la destination correcte.
Vos droits d'accès contrôlent les images que vous pouvez propager vers Container Registry (reportez-vous à Stratégies de contrôle de l'accès au référentiel). Vous pouvez propager des images vers des référentiels que vous avez créés (reportez-vous à Création d'un référentiel). Vous pouvez également propager des images vers des référentiels auxquels les groupes dont vous êtes membre ont accès grâce à des stratégies d'identité appropriées. Si vous êtes membre du groupe d'administrateurs, vous pouvez propager des images vers n'importe quel référentiel de la location.
Notez que les instructions de cette rubrique partent du principe que le référentiel vers lequel vous souhaitez transmettre les images existe déjà. Ce sera généralement le cas, mais pas toujours le cas (reportez-vous à Création d'un référentiel).
Container Registry est un registre conforme à l'Open Container Initiative. Par conséquent, vous pouvez stocker tous les artefacts conformes aux spécifications d'Open Container Initiative, tels que des images Docker, des listes de manifestes (parfois appelées images à architecture multiple) et des graphiques Helm. Les instructions de cette rubrique supposent que vous stockez des images Docker et que vous utilisez la CLI Docker.
Pour propager des images vers Container Registry à l'aide de l'interface de ligne de commande Docker, procédez comme suit :
-
Si vous disposez déjà d'un jeton d'authentification, passez à l'étape suivante. Sinon, procédez comme suit :
-
Dans l'angle supérieur droit de la console, ouvrez le menu Profil
, puis sélectionnez Paramètres d'utilisateur (ou Mon profil ou le nom de votre compte) pour afficher les détails.
-
Sur la page Jetons d'authentification, sélectionnez Générer un jeton.
-
Entrez la description conviviale du jeton d'authentification. Evitez de saisir des informations confidentielles.
-
Sélectionnez Générer un jeton. Le nouveau jeton d'authentification s'affiche.
-
Copiez immédiatement le jeton d'authentification vers un emplacement sécurisé à partir duquel vous pourrez l'extraire ultérieurement, car il ne sera plus visible dans la console.
-
Fermez la boîte de dialogue Générer un jeton.
-
-
Dans une fenêtre de terminal sur l'ordinateur client exécutant Docker, connectez-vous à Container Registry en saisissant
docker login <registry-domain>
, où<registry-domain>
inclut une clé de région ou un identificateur de région pour la région Container Registry que vous utilisez. Par exemple,docker login ocir.us-ashburn-1.oci.oraclecloud.com
. Reportez-vous à Disponibilité par région. -
Lorsque vous êtes invité à saisir un nom utilisateur, saisissez-le au format
<tenancy-namespace>/<username>
, où<tenancy-namespace>
correspond à la chaîne d'espace de noms Object Storage générée automatiquement de la location (comme indiqué sur la page 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>
est affiché dans le menu Profilde 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 utilisateur estjdoe@acme.com
, entrezansh81vru1zp/oracleidentitycloudservice/jdoe@acme.com
-
Lorsque vous êtes invité à saisir un mot de passe, saisissez le jeton d'authentification que vous avez copié précédemment.
-
Sur l'ordinateur client, recherchez l'image à propager :
-
Dans une fenêtre de terminal de l'ordinateur client, saisissez
docker images
pour répertorier 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
-
Recherchez l'image locale à propager vers Container Registry sur l'ordinateur client.
Dans la sortie de la commande
docker images
, recherchez l'image à propager. Vous devrez identifier cette image de manière unique par la suite, de l'une des façons suivantes :-
En utilisant son ID.
-
En utilisant son nom d'image (son nom de référentiel et sa balise d'image séparés par 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 à propager. Vous pouvez identifier cette image de manière unique de l'une des manières suivantes :-
En utilisant son ID (par exemple,
8e0506e14874
). -
En utilisant son nom d'image (son nom de référentiel et sa balise d'image séparés par le signe deux-points, par exemple
acme-web-app:latest
).
-
-
Utilisez la commande
docker tag
pour créer une copie de l'image d'origine en tant que nouvelle image (la nouvelle image est en fait simplement une référence à l'image d'origine existante). En tant que nom (ou balise) de la nouvelle image, vous indiquez le chemin qualifié complet de l'emplacement cible dans Container Registry vers lequel propager l'image. Pour ce faire, saisissez :docker tag <image-identifier> <target-tag>
où :
-
<image-identifier>
identifie l'image d'origine de manière unique, soit à l'aide de son ID (par exemple,8e0506e14874
), soit à l'aide de son nom (son nom de référentiel d'origine et sa balise d'image séparés par le signe deux-points, par exemple,acme-web-app:latest
). -
<target-tag>
est le chemin qualifié complet vers l'emplacement cible dans Container Registry où vous voulez propager l'image, au 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 Container Registry que vous utilisez. Par exemple,ocir.us-ashburn-1.oci.oraclecloud.com
. Reportez-vous à domaine de registre. -
<tenancy-namespace>
est la chaîne d'espace de noms Object Storage générée automatiquement de la location qui détient le référentiel vers lequel propager l'image (comme indiqué sur la page Informations sur la location). Par exemple, l'espace de noms de la location acme-dev peut êtreansh81vru1zp
. Pour certaines anciennes locations, la chaîne d'espace de noms peut être identique au nom de la location en minuscules (par exemple,acme-dev
). De plus, l'utilisateur doit avoir accès à la location. -
<repo-name>
est le nom du référentiel cible vers lequel propager l'image (par exemple,project01/acme-web-app
). Notez que vous indiquez généralement un référentiel qui existe déjà, mais qui n'a pas toujours besoin d'être le cas (reportez-vous à Création d'un référentiel). -
<version>
est un identificateur de version à fournir à l'image dans Container Registry (par exemple,v2.0.test
).
-
Par exemple, en combinant les exemples précédents, vous pouvez entrer :
docker tag 8e0506e14874 ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp/project01/acme-web-app:v2.0.test
-
-
-
Vérifiez que l'image Docker a été correctement balisée sur l'ordinateur client en saisissant
docker images
et en vous assurant que la liste des images inclut une image avec la balise que vous avez indiquée.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
-
Poussez l'image Docker de l'ordinateur client vers Container Registry en saisissant :
docker push <target-tag>
où
<target-tag>
est au 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 Container Registry que vous utilisez. Par exemple,ocir.us-ashburn-1.oci.oraclecloud.com
. Reportez-vous à domaine de registre. -
<tenancy-namespace>
est la chaîne d'espace de noms Object Storage générée automatiquement de la location qui détient le référentiel vers lequel propager l'image (comme indiqué sur la page Informations sur la location). Par exemple, l'espace de noms de la location acme-dev peut êtreansh81vru1zp
. Pour certaines anciennes locations, la chaîne d'espace de noms peut être identique au nom de la location en minuscules (par exemple,acme-dev
). De plus, l'utilisateur doit avoir accès à la location. -
<repo-name>
est le nom du référentiel cible vers lequel propager l'image (par exemple,project01/acme-web-app
). Notez que vous indiquez généralement un référentiel qui existe déjà, mais qui n'a pas toujours besoin d'être le cas (reportez-vous à Création d'un référentiel). -
<version>
est l'identificateur de version à fournir à l'image dans Container Registry (par exemple,v2.0.test
).
Par exemple :
docker push ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp/project01/acme-web-app:v2.0.test
-