# docker image push

**Descripción:** Sube una imagen a un registro

**Uso:** `docker image push [OPTIONS] NAME[:TAG]`

**Alias:** `docker push`








## Descripción

Usa `docker image push` para compartir tus imágenes en el registro [Docker Hub](https://hub.docker.com)
o en uno propio hospedado localmente.

Consulta la referencia de [`docker image tag`](/reference/cli/docker/image/tag/) para obtener más información
sobre nombres de imágenes y etiquetas válidos.

Terminar abruptamente el proceso `docker image push`, por ejemplo presionando `CTRL-c` mientras se está
ejecutando en una terminal, finaliza la operación de subida (push).

Durante docker push se muestran barras de progreso que indican el tamaño sin comprimir.
La cantidad real de datos que se sube se comprimirá antes del envío, por lo que
el tamaño subido no se verá reflejado por la barra de progreso.

Las credenciales del registro se gestionan mediante [docker login](/reference/cli/docker/login/).

### Subidas simultáneas

Por defecto, el demonio de Docker subirá cinco capas de una imagen a la vez.
Si tienes una conexión de bajo ancho de banda, esto puede causar problemas de tiempo de espera y es posible que desees reducir
este valor a través de la opción del demonio `--max-concurrent-uploads`. Consulta la
[documentación del demonio](/reference/cli/dockerd/) para obtener más detalles.


## Opciones

| Opción                                                        | Predeterminado                                        | Descripción                                                                                                                                    |
| ------------------------------------------------------------- | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|  | `-a`, `--all-tags` |  |  Sube todas las etiquetas de una imagen al repositorio |

 | `--platform` |  | API 1.46+ Sube un manifiesto específico de una plataforma como una imagen de plataforma única al registro.<br>El índice de la imagen no se subirá, lo que significa que no se conservarán otros manifiestos, incluidas las atestaciones.<br>'os[/arch[/variant]]': Plataforma explícita (p. ej., linux/amd64) |

 | `-q`, `--quiet` |  |  Suprime la salida detallada |




## Ejemplos


### Subir una nueva imagen a un registro

Primero, guarda la nueva imagen buscando el ID del contenedor (usando [`docker container
ls`](/reference/cli/docker/container/ls/)) y luego confírmalo (commit) con un nuevo nombre de imagen. Ten en cuenta que
solo se permiten los caracteres `a-z0-9-_.` al nombrar imágenes:

```console
$ docker container commit c16378f943fe rhel-httpd:latest
```

Now, push the image to the registry using the image ID. In this example the
registry is on host named `registry-host` and listening on port `5000`. To do
this, tag the image with the host name or IP address, and the port of the
registry:

```console
$ docker image tag rhel-httpd:latest registry-host:5000/myadmin/rhel-httpd:latest

$ docker image push registry-host:5000/myadmin/rhel-httpd:latest
```

Comprueba que esto funcionó ejecutando:

```console
$ docker image ls
```

Deberías ver listados tanto `rhel-httpd` como `registry-host:5000/myadmin/rhel-httpd`.


### Subir todas las etiquetas de una imagen (-a, --all-tags) {#all-tags}

Usa la opción `-a` (o `--all-tags`) para subir todas las etiquetas de una imagen local.

El siguiente ejemplo crea múltiples etiquetas para una imagen y sube todas esas
etiquetas a Docker Hub.

```console
$ docker image tag myimage registry-host:5000/myname/myimage:latest
$ docker image tag myimage registry-host:5000/myname/myimage:v1.0.1
$ docker image tag myimage registry-host:5000/myname/myimage:v1.0
$ docker image tag myimage registry-host:5000/myname/myimage:v1
```

La imagen ahora está etiquetada bajo múltiples nombres:

```console
$ docker image ls

REPOSITORY                          TAG        IMAGE ID       CREATED      SIZE
myimage                             latest     6d5fcfe5ff17   2 hours ago  1.22MB
registry-host:5000/myname/myimage   latest     6d5fcfe5ff17   2 hours ago  1.22MB
registry-host:5000/myname/myimage   v1         6d5fcfe5ff17   2 hours ago  1.22MB
registry-host:5000/myname/myimage   v1.0       6d5fcfe5ff17   2 hours ago  1.22MB
registry-host:5000/myname/myimage   v1.0.1     6d5fcfe5ff17   2 hours ago  1.22MB
```

Al subir con la opción `--all-tags`, se suben todas las etiquetas de la imagen
`registry-host:5000/myname/myimage`:

```console
$ docker image push --all-tags registry-host:5000/myname/myimage

The push refers to repository [registry-host:5000/myname/myimage]
195be5f8be1d: Pushed
latest: digest: sha256:edafc0a0fb057813850d1ba44014914ca02d671ae247107ca70c94db686e7de6 size: 4527
195be5f8be1d: Layer already exists
v1: digest: sha256:edafc0a0fb057813850d1ba44014914ca02d671ae247107ca70c94db686e7de6 size: 4527
195be5f8be1d: Layer already exists
v1.0: digest: sha256:edafc0a0fb057813850d1ba44014914ca02d671ae247107ca70c94db686e7de6 size: 4527
195be5f8be1d: Layer already exists
v1.0.1: digest: sha256:edafc0a0fb057813850d1ba44014914ca02d671ae247107ca70c94db686e7de6 size: 4527
```



