# docker inspect

**Descripción:** Devuelve información de bajo nivel sobre los objetos de Docker

**Uso:** `docker inspect [OPTIONS] NAME|ID [NAME|ID...]`










## Descripción

Docker inspect proporciona información detallada sobre los componentes controlados por Docker.

Por defecto, `docker inspect` presentará los resultados en un array JSON.


## Opciones

| Opción                                                        | Predeterminado                                        | Descripción                                                                                                                                    |
| ------------------------------------------------------------- | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|  | `-f`, `--format` |  |  Formatea la salida utilizando una plantilla personalizada:<br>'json':             Imprime en formato JSON<br>'TEMPLATE':         Imprime la salida utilizando la plantilla Go provista.<br>Consulta https://docs-docker.esdocu.com/go/formatting/ para obtener más información sobre cómo dar formato a la salida con plantillas |

 | `-s`, `--size` |  |  Muestra los tamaños totales de los archivos si el tipo es contenedor |

 | `--type` |  |  Solo inspecciona objetos del tipo indicado |




## Ejemplos


### Formatear la salida (--format) {#format}

Si se especifica un formato, la plantilla provista se ejecutará para cada resultado.

El paquete [text/template](https://pkg.go.dev/text/template) de Go describe
todos los detalles del formato.

### Especificar el tipo de destino (--type) {#type}

`--type config|container|image|node|network|secret|service|volume|task|plugin`

El comando `docker inspect` coincide con cualquier tipo de objeto por ID o nombre. En
algunos casos, existen múltiples tipos de objetos (por ejemplo, un contenedor y un volumen)
con el mismo nombre, lo que hace que el resultado sea ambiguo.

Para restringir `docker inspect` a un tipo de objeto específico, usa la opción `--type`.

El siguiente ejemplo inspecciona un volumen llamado `myvolume`.

```console
$ docker inspect --type=volume myvolume
```

### Inspeccionar el tamaño de un contenedor (-s, --size) {#size}

La opción `--size`, o su forma abreviada `-s`, añade dos campos adicionales a la
salida de `docker inspect`. Esta opción solo funciona para contenedores. El contenedor
no tiene que estar en ejecución; también funciona para contenedores detenidos.

```console
$ docker inspect --size mycontainer
```

La salida incluye la información completa de un comando `docker inspect` normal, con
los siguientes campos adicionales:

- `SizeRootFs`: el tamaño total de todos los archivos del contenedor, en bytes.
- `SizeRw`: el tamaño en bytes de los archivos que se han creado o cambiado en el
  contenedor en comparación con su imagen.

```console
$ docker run --name database -d redis
3b2cbf074c99db4a0cad35966a9e24d7bc277f5565c17233386589029b7db273
$ docker inspect --size database -f '{{ .SizeRootFs }}'
123125760
$ docker inspect --size database -f '{{ .SizeRw }}'
8192
$ docker exec database fallocate -l 1000 /newfile
$ docker inspect --size database -f '{{ .SizeRw }}'
12288
```

### Obtener la dirección IP de una instancia

En la mayoría de los casos, puedes extraer cualquier campo del JSON de una manera bastante sencilla.

```console
$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $INSTANCE_ID
```

### Obtener la dirección MAC de una instancia

```console
$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' $INSTANCE_ID
```

### Obtener la ruta de los registros (logs) de una instancia

```console
$ docker inspect --format='{{.LogPath}}' $INSTANCE_ID
```

### Obtener el nombre de la imagen de una instancia

```console
$ docker inspect --format='{{.Config.Image}}' $INSTANCE_ID
```

### Listar todos los enlaces de puertos

Puedes iterar sobre arrays y mapas en los resultados para generar una salida de texto simple:

```console
$ docker inspect --format='{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{with $conf}}{{(index . 0).HostPort}}{{else}}none{{end}} {{end}}' $INSTANCE_ID
```

### Encontrar un mapeo de puerto específico

La sintaxis `.Field` no funciona cuando el nombre del campo comienza con un número, pero
la función `index` del lenguaje de plantillas sí. La sección `.NetworkSettings.Ports`
contiene un mapa de los mapeos de puertos internos a una lista de objetos de dirección/puerto externos.
Para obtener solo el puerto público numérico, usas `index` para encontrar el mapa de puertos
específico, y luego `index` 0 contiene el primer objeto dentro del mismo. Después, especifica el campo
`HostPort` para obtener la dirección pública.

```console
$ docker inspect --format='{{(index (index .NetworkSettings.Ports "8787/tcp") 0).HostPort}}' $INSTANCE_ID
```

### Obtener una subsección en formato JSON

Si solicitas un campo que es en sí mismo una estructura que contiene otros campos, por
defecto obtendrás un volcado al estilo Go de los valores internos. Docker añade una función
de plantilla, `json`, que se puede aplicar para obtener los resultados en formato JSON.

```console
$ docker inspect --format='{{json .Config}}' $INSTANCE_ID
```



