Contenido
Tutorial de docker inspect: consulta los detalles de contenedores e imágenes con ejemplos de -f
docker inspect muestra en formato JSON la configuración y el estado completos de los objetos de Docker: contenedores, imágenes, volúmenes y redes.
Sintaxis
docker inspect [OPCIONES] NOMBRE O ID [NOMBRE O ID...]
| Opción | Descripción |
|---|---|
-f, --format PLANTILLA | Usa una plantilla de Go para obtener solo lo que necesitas, o json |
--type TIPO | Indica el tipo de objeto: container, image, volume, network, etc. (úsalo cuando haya nombres repetidos) |
-s, --size | Para contenedores: muestra también el tamaño |
Salida completa
$ docker inspect web | head -n 12
[
{
"Id": "1ec4fdc5c592b09b64e8f28869c37f89ab17163f88bfcb09e82815a44b0e1164",
"Created": "2026-10-13T05:28:35.05807319Z",
"Path": "/docker-entrypoint.sh",
"Args": [
"nginx",
"-g",
"daemon off;"
],
"State": {
"Status": "running",
La salida completa tiene cientos de líneas. En la práctica casi siempre añades -f para obtener solo los campos que necesitas.
Plantillas -f: consultas habituales
Las siguientes consultas usan un contenedor llamado web, iniciado con -e APP_MODE=demo:
$ docker inspect -f "{{.State.Status}} {{.State.StartedAt}}" web
running 2026-10-13T05:28:40.584115149Z
$ docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" web
172.18.0.2
$ docker inspect -f "{{json .Config.Env}}" web
["APP_MODE=demo","PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","NGINX_VERSION=1.30.5","PKG_RELEASE=1","DYNPKG_RELEASE=1","NJS_VERSION=1.0.1","NJS_RELEASE=1","ACME_VERSION=0.4.1"]
$ docker inspect -f "{{.Config.Image}} {{.HostConfig.RestartPolicy.Name}}" web
nginx:1.30-alpine no
| Qué quieres saber | Plantilla |
|---|---|
| Estado y hora de inicio | {{.State.Status}} {{.State.StartedAt}} |
| Código de salida y si se quedó sin memoria | {{.State.ExitCode}} {{.State.OOMKilled}} |
| Dirección IP | {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}} |
| Variables de entorno | {{json .Config.Env}} |
| Imagen usada y política de reinicio | {{.Config.Image}} {{.HostConfig.RestartPolicy.Name}} |
| Montajes | {{json .Mounts}} |
| Asignación de puertos | {{json .NetworkSettings.Ports}} |
| Resultado de la comprobación de estado | {{json .State.Health}} |
| PID en el host | {{.State.Pid}} |
Sintaxis de las plantillas:
{{.CAMPO.SUBCAMPO}}: obtiene un valor.{{json .CAMPO}}: muestra una sección entera como JSON (un array o un objeto).{{range .LISTA}}...{{end}}: recorre cada elemento de una lista o un objeto.
Cambio en Docker 29: el campo
{{.NetworkSettings.IPAddress}}de los tutoriales antiguos se eliminó. Al usarlo aparecetemplate parsing error: ... map has no entry for key "IPAddress". Usa en su lugar la sintaxisrangede la tabla anterior.
Imágenes, volúmenes y redes
$ docker inspect -f "{{.Config.Cmd}} {{.Config.Entrypoint}}" nginx:1.30-alpine
[nginx -g daemon off;] [/docker-entrypoint.sh]
$ docker inspect -f "{{.Architecture}} {{.Os}} {{.Size}}" nginx:1.30-alpine
amd64 linux 92750711
$ docker volume create v1
v1
$ docker inspect -f "{{.Mountpoint}}" v1
/var/lib/docker/volumes/v1/_data
$ docker inspect --type network -f "{{range .IPAM.Config}}{{.Subnet}}{{end}}" bridge
172.18.0.0/16
$ docker volume rm v1
v1
- En una imagen,
.Config.Cmdy.Config.Entrypointson el comando de inicio por defecto,.Architecturees la arquitectura de CPU y.Sizeestá en bytes (92750711 son unos 92,8 MB). - El
.Mountpointde un volumen es la ubicación real de sus datos en el host de Docker. En Docker Desktop esa ruta está dentro de la máquina virtual y no se puede abrir directamente desde Windows o macOS. --type networkindica que consultas una red;.IPAM.Configcontiene la configuración de la subred.
Capítulos relacionados
- docker ps:
--formatusa la misma sintaxis de plantillas - Redes y comunicación entre contenedores
- Fundamentos internos: usa
.State.Pidpara encontrar el proceso del contenedor en el host
Ejercicios
Ejercicio: averigua qué rutas tiene montadas el contenedor web y cómo están asignados sus puertos.
Respuesta
docker inspect -f "{{json .Mounts}}" web
docker inspect -f "{{json .NetworkSettings.Ports}}" web
El contenedor web de esta página no tiene montajes y no se inició con -p, así que los resultados son [] y {"80/tcp":null}, que solo indica el puerto del contenedor.
Preguntas frecuentes
¿Por qué falla el {{.NetworkSettings.IPAddress}} que encontré en internet?
Docker 29 ya no ofrece ese campo, así que al usarlo aparece el error map has no entry for key "IPAddress". Obtén la IP de cada red: {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}.
¿Cómo sé qué campos puedo consultar?
Ejecuta el comando una vez sin -f; la estructura JSON de la salida te da los nombres de los campos. Por ejemplo, State.Status se escribe {{.State.Status}}. También puedes mostrar una sección entera con {{json .Config}}.
¿Cómo pongo las comillas de -f en Windows?
Tanto en PowerShell como en CMD, rodea la plantilla con comillas dobles, por ejemplo docker inspect -f "{{.State.Status}}" web. La plantilla en sí no puede contener comillas dobles; si hace falta, usa cadenas con comillas simples.
Actualizado 14 de octubre de 2026