# Casos de uso y ejemplos de Gordon





Gordon maneja los flujos de trabajo de Docker a través de una conversación natural. En Docker Desktop, Gordon está disponible en la barra lateral para sesiones abiertas y desde puntos de entrada contextuales en vistas como Containers (Contenedores), Images (Imágenes), Builds (Compilaciones) y Volumes (Volúmenes). Al seleccionar a Gordon desde una de estas vistas, se abre una conversación precargada con el contexto del elemento que estás viendo. Puedes hacer las mismas preguntas desde la CLI con `docker ai`.

## Depurar un contenedor que falla

Estás en la vista de Containers y un contenedor se ha caído o se comporta de forma inesperada. Abre a Gordon desde la fila del contenedor para preguntar sobre el estado y la configuración de ese contenedor:

- "¿Por qué finalizó este contenedor?"
- "¿Qué variables de entorno están configuradas en este contenedor?"
- "¿Cuánto tiempo estuvo en ejecución este contenedor?"
- "¿Qué ajustes de seguridad se aplican a este contenedor?"

Desde la CLI:

```console
$ docker ai "why is my postgres container crashing on startup?"
```

## Depurar una compilación fallida

Estás en la vista de Builds observando una compilación que falló o que es más lenta de lo esperado. Abre a Gordon desde la compilación para inspeccionar el Dockerfile, los argumentos de compilación y el comportamiento de la caché:

- "¿Por qué falló esta compilación?"
- "¿Cómo puedo mejorar el uso de la caché para esta compilación?"
- "¿Qué instrucciones de Dockerfile se utilizaron?"
- "¿Qué argumentos de compilación se utilizaron?"

Desde la CLI:

```console
$ docker ai "my build is failing at the pip install step, what's wrong?"
```

## Inspeccionar una imagen

Estás en la vista de Images y deseas comprender qué hay en una imagen antes de ejecutarla, o quieres evaluar una imagen base:

- "¿Cómo ejecuto esta imagen en la CLI?"
- "¿Qué variables de entorno están configuradas?"
- "¿Qué entrypoint está configurado?"
- "¿Cuál es la arquitectura base de esta imagen?"
- "¿Existe una versión más ligera de esta imagen?"

Desde la CLI:

```console
$ docker ai "compare my python:3.12 image to python:3.12-slim"
```

## Gestionar volúmenes y recursos

Desde la vista de Volumes, pregúntale a Gordon sobre qué está almacenado, qué contenedores utilizan un volumen o cómo hacer una limpieza. Desde cualquier vista, utiliza la barra lateral de Gordon para inspeccionar tu entorno más amplio:

- "¿Qué contenedores están utilizando este volumen?"
- "Muéstrame todos mis contenedores y su estado"
- "¿Cuánto espacio en disco está utilizando Docker?"
- "Muestra mis imágenes ordenadas por tamaño"

Desde la CLI:

```console
$ docker ai "clean up all unused Docker resources"
```

## Compilar y contenedorizar

Para proyectos nuevos, inicia una conversación en la barra lateral de Gordon o a través de `docker ai` desde el directorio de tu proyecto. Gordon lee tu directorio de trabajo y propone los archivos correctos:

- "Contenedorizar mi aplicación Node.js"
- "Crear un docker-compose para mi stack"
- "Configurar un entorno de desarrollo con Postgres y Redis"

Desde la CLI:

```console
$ cd ~/mi-proyecto
$ docker ai "create a Dockerfile for this application"
```

## Desarrollar y optimizar

Pídele a Gordon que revise y mejore Dockerfiles o definiciones de servicios existentes. Puedes comenzar desde la vista de Images (para una imagen que ya hayas compilado) o desde la barra lateral de Gordon con el contexto de tu proyecto:

- "Optimizar este Dockerfile"
- "Añadir una prueba de salud (health check) a mi servicio"
- "Hacer mi Dockerfile más seguro"

Desde la CLI:

```console
$ docker ai "rate my Dockerfile and suggest improvements"
```

## Aprender Docker

Para preguntas conceptuales, utiliza la barra lateral de Gordon o la CLI. Gordon explica los conceptos basándose en tu propio entorno, no con respuestas genéricas:

- "¿Qué es un volumen de Docker?"
- "Explica las compilaciones multi-etapa (multi-stage builds)"
- "¿Cómo funciona la red en Docker?"

Desde la CLI:

```console
$ docker ai "what's the difference between COPY and ADD in a Dockerfile?"
```

## Escribir prompts eficaces

Sé específico:

- Incluye el contexto relevante: "mi contenedor de postgres" en lugar de "la base de datos".
- Declara tu objetivo: "hacer mi compilación más rápida" en lugar de "optimizar".
- Incluye los mensajes de error al depurar.

Gordon funciona mejor cuando describes lo que deseas lograr en lugar de cómo hacerlo. Gordon mantiene el contexto a lo largo de una conversación, por lo que puedes realizar un seguimiento con aclaraciones o hacer preguntas relacionadas sin tener que repetirte.

### Contexto del directorio de trabajo

Al usar `docker ai` en la CLI, Gordon utiliza tu directorio de trabajo actual como contexto predeterminado para las operaciones de archivos. Cambia al directorio de tu proyecto antes de iniciar a Gordon para asegurarte de que tenga acceso a los archivos correctos:

```console
$ cd ~/mi-proyecto
$ docker ai "review my Dockerfile"
```

También puedes sobrescribir el directorio de trabajo con el flag `-C`. Consulta [Usar Gordon a través de la CLI](/ai/gordon/how-to/cli/#directorio-de-trabajo) para obtener más detalles.

