# Formatear la salida de los comandos y de los logs


Docker admite [plantillas de Go (Go templates)](https://golang.org/pkg/text/template/) que puedes utilizar para manipular el formato de salida de ciertos comandos y controladores de registros (log drivers).

Docker proporciona un conjunto de funciones básicas para manipular elementos de plantilla. Todos estos ejemplos utilizan el comando `docker inspect`, pero muchos otros comandos de la CLI tienen una bandera `--format`, y muchas de las referencias de comandos de la CLI incluyen ejemplos de personalización del formato de salida.

> [!NOTE]
>
> Al utilizar la bandera `--format`, debes tener en cuenta tu entorno de shell.
> En una shell POSIX, puedes ejecutar lo siguiente utilizando comillas simples:
>
> ```console
> $ docker inspect --format '{{join .Args " , "}}'
> ```
>
> Por el contrario, en una shell de Windows (por ejemplo, PowerShell), debes utilizar comillas simples pero escapar las comillas dobles dentro de los parámetros de la siguiente manera:
>
> ```console
> $ docker inspect --format '{{join .Args \" , \"}}'
> ```

## join

`join` concatena una lista de cadenas para crear una única cadena. Coloca un separador entre cada elemento de la lista.

```console
$ docker inspect --format '{{join .Args " , "}}' container
```

## table

`table` especifica qué campos deseas ver en la salida.

```console
$ docker image list --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}\t{{.Size}}"
```

## json

`json` codifica un elemento como una cadena JSON.

```console
$ docker inspect --format '{{json .Mounts}}' container
```

## lower

`lower` transforma una cadena a su representación en minúsculas.

```console
$ docker inspect --format "{{lower .Name}}" container
```

## split

`split` divide una cadena en una lista de cadenas separadas por un delimitador.

```console
$ docker inspect --format '{{split .Image ":"}}' container
```

## title

`title` convierte en mayúscula el primer carácter de una cadena.

```console
$ docker inspect --format "{{title .Name}}" container
```

## upper

`upper` transforma una cadena a su representación en mayúsculas.

```console
$ docker inspect --format "{{upper .Name}}" container
```

## pad

`pad` añade relleno de espacio en blanco a una cadena. Puedes especificar el número de espacios a añadir antes y después de la cadena.

```console
$ docker image list --format '{{pad .Repository 5 10}}'
```

Este ejemplo añade 5 espacios antes del nombre del repositorio de la imagen y 10 espacios después.

## truncate

`truncate` acorta una cadena a una longitud especificada. Si la cadena es más corta que la longitud especificada, permanece inalterada.

```console
$ docker image list --format '{{truncate .Repository 15}}'
```

Este ejemplo muestra el nombre del repositorio de la imagen, truncándolo a los primeros 15 caracteres si es más largo.

## `println`

`println` imprime cada valor en una línea nueva.

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

## Consejo (Hint)

Para averiguar qué datos se pueden imprimir, muestra todo el contenido en formato JSON:

```console
$ docker container ls --format='{{json .}}'
```

