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).
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 :
-
Si vous avez déjà un jeton d'authentification, passez à l'étape suivante. Sinon :
-
Dans l'angle supérieur droit de la console, ouvrez le menu Profil
, puis sélectionnez Paramètres de l'utilisateur (ou Mon profil ou le nom de votre compte) pour afficher les détails.
-
Dans la page Jetons d'authentification, sélectionnez Générer un jeton.
-
Entrez une description conviviale pour le jeton d'authentification. Évitez d'entrer des informations confidentielles.
-
Sélectionnez Générer un jeton. Le nouveau jeton d'authentification s'affiche.
-
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.
-
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 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. -
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 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 d'utilisateur estjdoe@acme.com
, entrezansh81vru1zp/oracleidentitycloudservice/jdoe@acme.com
-
Lorsque vous êtes invité à entrer un mot de passe, entrez le jeton d'authentification copié précédemment.
-
Recherchez l'image sur l'ordinateur client que vous voulez pousser :
-
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
-
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
).
-
-
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 exempleacme-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 êtreansh81vru1zp
. 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
-
-
-
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
-
Poussez l'image Docker de l'ordinateur client vers le registre de conteneurs en entrant :
docker push <target-tag>
où
<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 êtreansh81vru1zp
. 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
-