Transferencia de imágenes con la CLI de Docker
Descubra cómo transferir imágenes a Container Registry mediante la CLI de Docker.
Utilice la CLI de Docker para transferir imágenes a Oracle Cloud Infrastructure Registry (también conocido como Container Registry).
Para transferir una imagen, primero debe utilizar el comando docker tag
para crear una copia de la imagen de origen local como una nueva imagen (la nueva imagen es realmente solo una referencia a la imagen de origen existente). Como nombre de la nueva imagen, especifique la ruta de acceso completa a la ubicación de destino en Container Registry en la que desea transferir la imagen, incluido el nombre de un repositorio.
Por ejemplo, suponga que tiene una imagen local denominada acme-web-app:latest
(el nombre de la imagen que incluye el nombre del repositorio acme-web-app
y la etiqueta de imagen latest
). Digamos que desea transferir esta imagen a Container Registry a un repositorio denominado project01/acme-web-app
con un identificador de versión de v2.0.test
, en la región de Ashburn del arrendamiento acme-dev. Cuando se utiliza el comando docker tag
, se asigna un nombre a la nueva imagen con la ruta de acceso completa a su destino, con el formato <registry-domain>/<tenancy-namespace>/<repo-name>:<version>
. En este caso, se asignaría el nombre ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp/project01/acme-web-app:v2.0.test
a la nueva imagen. Posteriormente, cuando se utiliza el comando docker push
, el nombre de la imagen garantiza que se transfiere al destino correcto.
Los permisos controlan las imágenes que puede transferir a Container Registry (consulte Políticas para controlar el acceso al repositorio). Puede transferir imágenes a los repositorios que ha creado (consulte Creación de un repositorio). También puede transferir imágenes a los repositorios a los que se otorga acceso a los grupos a los que pertenece mediante las políticas de identidad correspondientes. Si pertenece al grupo Administradores, puede transferir imágenes a cualquier repositorio del arrendamiento.
Tenga en cuenta que las instrucciones de este tema suponen que el repositorio al que desea transferir imágenes ya existe. Normalmente será así, pero no siempre es necesario hacerlo (consulte Creación de un repositorio).
Container Registry es un registro compatible con la iniciativa de contenedor abierto. Como resultado, puede almacenar cualquier artefacto que cumpla con las especificaciones de Open Container Initiative, como imágenes de Docker, listas de manifiestos (a veces conocidas como imágenes de arquitectura múltiple) y gráficos de Helm. En las instrucciones de este tema se supone que está almacenando imágenes de Docker y utilizando la CLI de Docker.
Para transferir imágenes a Container Registry mediante la CLI de Docker:
-
Si ya tiene un token de autenticación, vaya al paso siguiente. De lo contrario:
-
En la esquina superior derecha de la consola, abra el menú Perfil
y, a continuación, seleccione la configuración de usuario (o Mi perfil o el nombre de su cuenta) para ver los detalles.
-
En la página Tokens de autenticación, seleccione Generar token.
-
Introduzca una descripción fácil de recordar para el token de autenticación. Evite introducir información confidencial.
-
Seleccione Generar token. Se muestra el nuevo token de autenticación.
-
Copie el token de autenticación inmediatamente en una ubicación segura desde donde pueda recuperarlo más tarde, ya que no verá el token de autenticación de nuevo en la consola.
-
Cierre el cuadro de diálogo Generar token.
-
-
En una ventana de terminal de la máquina cliente que ejecuta Docker, conéctese a Container Registry introduciendo
docker login <registry-domain>
, donde<registry-domain>
incluye una clave de región o un identificador de región para la región de Container Registry que está utilizando. Por ejemplo,docker login ocir.us-ashburn-1.oci.oraclecloud.com
. Consulte Disponibilidad por región. -
Cuando se le solicite un nombre de usuario, introduzca su nombre de usuario con el formato
<tenancy-namespace>/<username>
, donde<tenancy-namespace>
es la cadena de espacio de nombres de Object Storage generada automáticamente del arrendamiento (como se muestra en la página Información de arrendamiento). Por ejemplo,ansh81vru1zp/jdoe@acme.com
Si su arrendamiento está federado con Oracle Identity Cloud Service, utilice el formato
<tenancy-namespace>/<domain-name>/<username>
. Para los usuarios federados,<domain-name>/<username>
se muestra en el menú Perfilde la consola. Por ejemplo, si la cadena de espacio de nombres de su arrendamiento es
ansh81vru1zp
y su arrendamiento está federado con Oracle Identity Cloud Service, y su nombre de usuario esjdoe@acme.com
, introduzcaansh81vru1zp/oracleidentitycloudservice/jdoe@acme.com
-
Cuando se le solicite una contraseña, introduzca el token de autenticación que ha copiado antes.
-
Busque la imagen en la máquina cliente que desea transferir:
-
En una ventana de terminal de la máquina cliente, introduzca
docker images
para mostrar las imágenes disponibles.Por ejemplo:
$ 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
-
Busque la imagen local en la máquina cliente que desea transferir a Container Registry.
En la salida del comando
docker images
, busque la imagen específica que desea transferir. Más adelante, tendrá que identificar de forma única esta imagen de una de estas formas:-
mediante su ID.
-
Utilizando su nombre de imagen (su nombre de repositorio y etiqueta de imagen separados por dos puntos).
Por ejemplo, en la máquina cliente puede tener una imagen acme-web-app. En la salida del comando
docker images
, busque la imagen acme-web-app específica que desea transferir. Puede identificar de forma única esa imagen concreta de una de las siguientes formas:-
Mediante su ID (por ejemplo,
8e0506e14874
). -
Mediante su nombre de imagen (su nombre de repositorio y etiqueta de imagen separados por dos puntos, por ejemplo,
acme-web-app:latest
).
-
-
Utilice el comando
docker tag
para crear una copia de la imagen original como una nueva imagen (la nueva imagen es realmente solo una referencia a la imagen original existente). Como nombre (o etiqueta) de la nueva imagen, especifique la ruta de acceso completa a la ubicación de destino en Container Registry en la que desea transferir la imagen introduciendo:docker tag <image-identifier> <target-tag>
donde:
-
<image-identifier>
identifica de forma única la imagen original, ya sea mediante el ID de la imagen (por ejemplo,8e0506e14874
) o el nombre de la imagen (su nombre de repositorio original y la etiqueta de imagen separados por dos puntos, por ejemploacme-web-app:latest
). -
<target-tag>
es la ruta de acceso completa a la ubicación de destino en Container Registry donde desea transferir la imagen, con el formato<registry-domain>/<tenancy-namespace>/<repo-name>:<version>
, donde:-
<registry-domain>
incluye la clave de región o el identificador de región para la región de Container Registry que está utilizando. Por ejemplo,ocir.us-ashburn-1.oci.oraclecloud.com
. Consulte dominio de registro. -
<tenancy-namespace>
es la cadena de espacio de nombres de almacenamiento de objetos generada automáticamente del arrendamiento propietario del repositorio al que desea transferir la imagen (como se muestra en la página Información de arrendamiento). Por ejemplo, el espacio de nombres del arrendamiento acme-dev puede seransh81vru1zp
. Tenga en cuenta que para algunos arrendamientos más antiguos, la cadena de espacios de nombres puede ser la misma que el nombre del arrendamiento en letras minúsculas (por ejemplo,acme-dev
). Tenga en cuenta también que su usuario debe tener acceso al arrendamiento. -
<repo-name>
es el nombre del repositorio de destino al que desea transferir la imagen (por ejemplo,project01/acme-web-app
). Tenga en cuenta que normalmente especificará un repositorio que ya existe, pero que no siempre tiene que ser el caso (consulte Creación de un Repositorio). -
<version>
es un identificador de versión que desea proporcionar a la imagen en Container Registry (por ejemplo,v2.0.test
).
-
Por ejemplo, si se combinan los ejemplos anteriores, podría introducir:
docker tag 8e0506e14874 ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp/project01/acme-web-app:v2.0.test
-
-
-
Confirme que la imagen de Docker se ha etiquetado correctamente en la máquina cliente introduciendo
docker images
y verificando que la lista de imágenes incluye una imagen con la etiqueta especificada.Por ejemplo:
$ 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
-
Para transferir la imagen de Docker de la máquina cliente a Container Registry, introduzca:
docker push <target-tag>
donde
<target-tag>
tiene el formato<registry-domain>/<tenancy-namespace>/<repo-name>:<version>
, donde:-
<registry-domain>
incluye la clave de región o el identificador de región para la región de Container Registry que está utilizando. Por ejemplo,ocir.us-ashburn-1.oci.oraclecloud.com
. Consulte dominio de registro. -
<tenancy-namespace>
es la cadena de espacio de nombres de almacenamiento de objetos generada automáticamente del arrendamiento propietario del repositorio al que desea transferir la imagen (como se muestra en la página Información de arrendamiento). Por ejemplo, el espacio de nombres del arrendamiento acme-dev puede seransh81vru1zp
. Tenga en cuenta que para algunos arrendamientos más antiguos, la cadena de espacios de nombres puede ser la misma que el nombre del arrendamiento en letras minúsculas (por ejemplo,acme-dev
). Tenga en cuenta también que su usuario debe tener acceso al arrendamiento. -
<repo-name>
es el nombre del repositorio de destino al que desea transferir la imagen (por ejemplo,project01/acme-web-app
). Tenga en cuenta que normalmente especificará un repositorio que ya existe, pero que no siempre tiene que ser el caso (consulte Creación de un Repositorio). -
<version>
es el identificador de versión que desea proporcionar a la imagen en Container Registry (por ejemplo,v2.0.test
).
Por ejemplo:
docker push ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp/project01/acme-web-app:v2.0.test
-