Compartir comentarios
Las respuestas se generan en base a la documentación.

docker image ls

DescripciónMuestra las imágenes
Usodocker image ls [OPTIONS] [REPOSITORY[:TAG]]
Alias
docker image list docker images

Descripción

Por defecto, docker images mostrará todas las imágenes de nivel superior, sus repositorios y etiquetas, y sus tamaños.

Las imágenes de Docker tienen capas intermedias que aumentan la reutilización, disminuyen el uso de disco y aceleran el docker build al permitir que cada paso sea cacheado. Estas capas intermedias no se muestran por defecto.

Las imágenes sin etiqueta (huérfanas o dangling) también están ocultas por defecto. Usa la opción -a (--all) para mostrar las capas intermedias y las imágenes huérfanas.

El valor SIZE (tamaño) es el espacio acumulado que ocupa la imagen y todas sus imágenes principales (parent images). Este es también el espacio de disco utilizado por el contenido del archivo Tar creado cuando haces docker save de una imagen.

Una imagen aparecerá en la lista más de una vez si tiene múltiples nombres de repositorio o etiquetas. Esta única imagen (identificable por su IMAGE ID coincidente) utiliza el SIZE indicado una sola vez.

Opciones

OpciónPredeterminadoDescripción
-a, --allMuestra todas las imágenes (por defecto se ocultan las imágenes intermedias y huérfanas)
--digestsMuestra los digests
-f, --filterFiltra la salida basándose en las condiciones provistas
--formatFormatea la salida utilizando una plantilla personalizada:
'table': Imprime la salida en formato de tabla con encabezados de columna (por defecto)
'table TEMPLATE': Imprime la salida en formato de tabla utilizando la plantilla Go provista
'json': Imprime en formato JSON
'TEMPLATE': Imprime la salida utilizando la plantilla Go provista.
Refer to https://docs-docker.esdocu.com/go/formatting/ for more information about formatting output with templates
--no-truncNo trunca la salida
-q, --quietSolo muestra los IDs de las imágenes
--treeAPI 1.47+ experimental (CLI) Muestra imágenes multiplataforma como un árbol (EXPERIMENTAL)

Ejemplos

Listar las imágenes creadas más recientemente

$ docker images

REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
<none>                    <none>              77af4d6b9913        19 hours ago        1.089 GB
committ                   latest              b6fa739cedf5        19 hours ago        1.089 GB
<none>                    <none>              78a85c484f71        19 hours ago        1.089 GB
docker                    latest              30557a29d5ab        20 hours ago        1.089 GB
<none>                    <none>              5ed6274db6ce        24 hours ago        1.089 GB
postgres                  9                   746b819f315e        4 days ago          213.4 MB
postgres                  9.3                 746b819f315e        4 days ago          213.4 MB
postgres                  9.3.5               746b819f315e        4 days ago          213.4 MB
postgres                  latest              746b819f315e        4 days ago          213.4 MB

Listar imágenes por nombre y etiqueta

El comando docker images toma un argumento opcional [REPOSITORY[:TAG]] que restringe la lista a las imágenes que coinciden con el argumento. Si especificas REPOSITORY pero no TAG, el comando docker images enumera todas las imágenes en el repositorio indicado.

Por ejemplo, para listar todas las imágenes en el repositorio java, ejecuta el siguiente comando:

$ docker images java

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
java                8                   308e519aac60        6 days ago          824.5 MB
java                7                   493d82594c15        3 months ago        656.3 MB
java                latest              2711b1d6f3aa        5 months ago        603.9 MB

El valor [REPOSITORY[:TAG]] debe ser una coincidencia exacta. Esto significa que, por ejemplo, docker images jav no coincide con la imagen java.

Si se proporcionan tanto REPOSITORY como TAG, solo se enumeran las imágenes que coinciden con ese repositorio y etiqueta. Para encontrar todas las imágenes locales en el repositorio java con la etiqueta 8, puedes usar:

$ docker images java:8

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
java                8                   308e519aac60        6 days ago          824.5 MB

Si nada coincide con REPOSITORY[:TAG], la lista estará vacía.

$ docker images java:0

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

Mostrar los IDs de imagen completos (--no-trunc)

$ docker images --no-trunc

REPOSITORY                    TAG                 IMAGE ID                                                                  CREATED             SIZE
<none>                        <none>              sha256:77af4d6b9913e693e8d0b4b294fa62ade6054e6b2f1ffb617ac955dd63fb0182   19 hours ago        1.089 GB
committest                    latest              sha256:b6fa739cedf5ea12a620a439402b6004d057da800f91c7524b5086a5e4749c9f   19 hours ago        1.089 GB
<none>                        <none>              sha256:78a85c484f71509adeaace20e72e941f6bdd2b25b4c75da8693efd9f61a37921   19 hours ago        1.089 GB
docker                        latest              sha256:30557a29d5abc51e5f1d5b472e79b7e296f595abcf19fe6b9199dbbc809c6ff4   20 hours ago        1.089 GB
<none>                        <none>              sha256:0124422dd9f9cf7ef15c0617cda3931ee68346455441d66ab8bdc5b05e9fdce5   20 hours ago        1.089 GB
<none>                        <none>              sha256:18ad6fad340262ac2a636efd98a6d1f0ea775ae3d45240d3418466495a19a81b   22 hours ago        1.082 GB
<none>                        <none>              sha256:f9f1e26352f0a3ba6a0ff68167559f64f3e21ff7ada60366e2d44a04befd1d3a   23 hours ago        1.089 GB
tryout                        latest              sha256:2629d1fa0b81b222fca63371ca16cbf6a0772d07759ff80e8d1369b926940074   23 hours ago        131.5 MB
<none>                        <none>              sha256:5ed6274db6ceb2397844896966ea239290555e74ef307030ebb01ff91b1914df   24 hours ago        1.089 GB

Mostrar los digests de las imágenes (--digests)

Las imágenes que utilizan el formato v2 o posterior tienen un identificador direccionable por contenido llamado digest. Mientras el contenido utilizado para generar la imagen no cambie, el valor del digest es predecible. Para listar los valores de digest de las imágenes, usa la opción --digests:

$ docker images --digests
REPOSITORY                         TAG                 DIGEST                                                                    IMAGE ID            CREATED             SIZE
localhost:5000/test/busybox        <none>              sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf   4986bf8c1536        9 weeks ago         2.43 MB

Al enviar (push) o descargar (pull) de un registro 2.0, la salida del comando push o pull incluye el digest de la imagen. Puedes descargar (pull) usando un valor de digest. También puedes hacer referencia por digest en los comandos create, run y rmi, así como en la referencia de imagen FROM en un Dockerfile.

Filtrar (--filter)

El formato de la opción de filtrado (-f o --filter) es "clave=valor". Si hay más de un filtro, pasa múltiples opciones (por ejemplo, --filter "foo=bar" --filter "bif=baz").

Los filtros actualmente soportados son:

  • dangling (booleano - true o false)
  • label (label=<clave> o label=<clave>=<valor>)
  • before (<nombre-imagen>[:<etiqueta>], <id imagen> o <imagen@digest>) - filtra imágenes creadas antes del ID o las referencias indicadas
  • since (<nombre-imagen>[:<etiqueta>], <id imagen> o <imagen@digest>) - filtra imágenes creadas desde el ID o las referencias indicadas
  • reference (patrón de una referencia de imagen) - filtra imágenes cuya referencia coincide con el patrón especificado

Mostrar imágenes sin etiqueta (huérfanas o dangling)

$ docker images --filter "dangling=true"

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
<none>              <none>              8abc22fbb042        4 weeks ago         0 B
<none>              <none>              48e5f45168b9        4 weeks ago         2.489 MB
<none>              <none>              bf747efa0e2f        4 weeks ago         0 B
<none>              <none>              980fe10e5736        12 weeks ago        101.4 MB
<none>              <none>              dea752e4e117        12 weeks ago        101.4 MB
<none>              <none>              511136ea3c5a        8 months ago        0 B

Esto mostrará imágenes sin etiqueta que son las hojas del árbol de imágenes (no las capas intermedias). Estas imágenes se producen cuando una nueva construcción de una imagen le quita la etiqueta repo:tag al ID de la imagen, dejándola como <none>:<none> o sin etiqueta. Se emitirá una advertencia si intentas eliminar una imagen cuando un contenedor la está utilizando actualmente. Tener esta opción facilita la limpieza por lotes.

Puedes usar esto junto con docker rmi:

$ docker rmi $(docker images -f "dangling=true" -q)

8abc22fbb042
48e5f45168b9
bf747efa0e2f
980fe10e5736
dea752e4e117
511136ea3c5a

Docker te advierte si existen contenedores que están usando estas imágenes sin etiqueta.

Mostrar imágenes con una etiqueta determinada

El filtro label busca coincidencias en imágenes basándose únicamente en la presencia de una etiqueta (label) o en una etiqueta y un valor.

El siguiente filtro coincide con imágenes que tienen la etiqueta com.example.version independientemente de su valor.

$ docker images --filter "label=com.example.version"

REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
match-me-1          latest              eeae25ada2aa        About a minute ago   188.3 MB
match-me-2          latest              dea752e4e117        About a minute ago   188.3 MB

El siguiente filtro coincide con imágenes que tienen la etiqueta com.example.version con el valor 1.0.

$ docker images --filter "label=com.example.version=1.0"

REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
match-me            latest              511136ea3c5a        About a minute ago   188.3 MB

En este ejemplo, con el valor 0.1, devuelve un conjunto vacío porque no se encontraron coincidencias.

$ docker images --filter "label=com.example.version=0.1"
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE

Filtrar imágenes por tiempo

El filtro before muestra solo imágenes creadas antes de la imagen con un ID o referencia dados. Por ejemplo, teniendo estas imágenes:

$ docker images

REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
image1              latest              eeae25ada2aa        4 minutes ago        188.3 MB
image2              latest              dea752e4e117        9 minutes ago        188.3 MB
image3              latest              511136ea3c5a        25 minutes ago       188.3 MB

Filtrar con before daría como resultado:

$ docker images --filter "before=image1"

REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
image2              latest              dea752e4e117        9 minutes ago        188.3 MB
image3              latest              511136ea3c5a        25 minutes ago       188.3 MB

Filtrar con since daría como resultado:

$ docker images --filter "since=image3"
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
image1              latest              eeae25ada2aa        4 minutes ago        188.3 MB
image2              latest              dea752e4e117        9 minutes ago        188.3 MB

Filtrar imágenes por referencia

El filtro reference muestra solo imágenes cuya referencia coincide con el patrón especificado.

$ docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
busybox             latest              e02e811dd08f        5 weeks ago         1.09 MB
busybox             uclibc              e02e811dd08f        5 weeks ago         1.09 MB
busybox             musl                733eb3059dce        5 weeks ago         1.21 MB
busybox             glibc               21c16b6787c6        5 weeks ago         4.19 MB

Filtrar con reference daría como resultado:

$ docker images --filter=reference='busy*:*libc'

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
busybox             uclibc              e02e811dd08f        5 weeks ago         1.09 MB
busybox             glibc               21c16b6787c6        5 weeks ago         4.19 MB

Filtrar con múltiples reference daría como resultado la coincidencia con A o B:

$ docker images --filter=reference='busy*:uclibc' --filter=reference='busy*:glibc'

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
busybox             uclibc              e02e811dd08f        5 weeks ago         1.09 MB
busybox             glibc               21c16b6787c6        5 weeks ago         4.19 MB

Formatear la salida (--format)

La opción de formato (--format) permite imprimir la salida de los contenedores de forma atractiva utilizando una plantilla Go.

A continuación se enumeran los marcadores de posición válidos para la plantilla Go:

Marcador de posiciónDescripción
.IDID de la imagen
.RepositoryRepositorio de la imagen
.TagEtiqueta de la imagen
.DigestDigest de la imagen
.CreatedSinceTiempo transcurrido desde que se creó la imagen
.CreatedAtHora en que se creó la imagen
.SizeTamaño de la imagen en disco

Cuando se utiliza la opción --format, el comando image devolverá los datos exactamente como lo declara la plantilla o, cuando se utiliza la directiva table, también incluirá los encabezados de las columnas.

El siguiente ejemplo utiliza una plantilla sin encabezados y muestra las entradas ID y Repository separadas por dos puntos (:) para todas las imágenes:

$ docker images --format "{{.ID}}: {{.Repository}}"

77af4d6b9913: <none>
b6fa739cedf5: committ
78a85c484f71: <none>
30557a29d5ab: docker
5ed6274db6ce: <none>
746b819f315e: postgres
746b819f315e: postgres
746b819f315e: postgres
746b819f315e: postgres

Para listar todas las imágenes con su repositorio y etiqueta en formato de tabla puedes usar:

$ docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"

IMAGE ID            REPOSITORY                TAG
77af4d6b9913        <none>                    <none>
b6fa739cedf5        committ                   latest
78a85c484f71        <none>                    <none>
30557a29d5ab        docker                    latest
5ed6274db6ce        <none>                    <none>
746b819f315e        postgres                  9
746b819f315e        postgres                  9.3
746b819f315e        postgres                  9.3.5
746b819f315e        postgres                  latest

Para listar todas las imágenes en formato JSON, usa la directiva json:

$ docker images --format json
{"Containers":"N/A","CreatedAt":"2021-03-04 03:24:42 +0100 CET","CreatedSince":"5 days ago","Digest":"\u003cnone\u003e","ID":"4dd97cefde62","Repository":"ubuntu","SharedSize":"N/A","Size":"72.9MB","Tag":"latest","UniqueSize":"N/A"}
{"Containers":"N/A","CreatedAt":"2021-02-17 22:19:54 +0100 CET","CreatedSince":"2 weeks ago","Digest":"\u003cnone\u003e","ID":"28f6e2705743","Repository":"alpine","SharedSize":"N/A","Size":"5.61MB","Tag":"latest","UniqueSize":"N/A"}