# Imágenes de Docker disponibles

Al alquilar un servidor GPU en Clore.ai, puedes elegir entre imágenes Docker preconfiguradas o usar tus propias imágenes personalizadas.

## Imágenes oficiales de Clore

Imágenes preconstruidas mantenidas por Clore.ai, optimizadas para el mercado descentralizado de GPU.

### Propósito general

| Imagen Docker                             | Descripción                           | Puertos  | Actualizado |
| ----------------------------------------- | ------------------------------------- | -------- | ----------- |
| `cloreai/jupyter:ubuntu24.04-v2`          | Jupyter Lab + SSH en Ubuntu 24.04     | 22, 8888 | Ene 2025 ✅  |
| `cloreai/ml-tools:0.1`                    | Jupyter Lab + servidor web de VS Code | 22, 8888 | Jul 2023 ⚠️ |
| `cloreai/ubuntu20.04-jupyter:latest`      | Ubuntu 20.04 + SSH + Jupyter          | 22, 8888 | Nov 2022 ⚠️ |
| `cloreai/ubuntu-20.04-remote-desktop:1.2` | Ubuntu con escritorio remoto GUI      | 22, 3389 | May 2023 ⚠️ |
| `cloreai/torch:2.0.1`                     | PyTorch 2.0.1 + CUDA                  | 22       | Jul 2023 ⚠️ |

### Inferencia AI/ML

| Imagen Docker                           | Descripción                         | Puertos | Actualizado |
| --------------------------------------- | ----------------------------------- | ------- | ----------- |
| `cloreai/deepseek-r1-8b:latest`         | DeepSeek R1 8B listo para ejecutar  | 8000    | Ene 2025 ✅  |
| `cloreai/stable-diffusion-webui:latest` | AUTOMATIC1111 SD WebUI              | 7860    | Sep 2023 ⚠️ |
| `cloreai/oobabooga:1.5`                 | Interfaz web de generación de texto | 7860    | Ago 2023 ⚠️ |

### Infraestructura y Minería

| Imagen Docker               | Descripción                             | Actualizado |
| --------------------------- | --------------------------------------- | ----------- |
| `cloreai/monitoring:0.7`    | Agente de monitorización de servidores  | Sep 2024 ✅  |
| `cloreai/hiveos:0.4`        | Integración con HiveOS                  | Feb 2025 ✅  |
| `cloreai/openvpn-proxy:0.2` | Reenvío VPN/proxy                       | Feb 2025 ✅  |
| `cloreai/proxy:0.2`         | Sistema de reenvío de puertos           | Ene 2024    |
| `cloreai/automining:0.1`    | Configuración de minería automática     | Jun 2023 ⚠️ |
| `cloreai/kuzco:latest`      | Inferencia distribuida Kuzco            | Jun 2025 ✅  |
| `cloreai/partner:nastya-01` | Herramientas de integración para socios | Abr 2025 ✅  |

> ⚠️ Las imágenes marcadas con ⚠️ no se han actualizado en más de un año. Para cargas de trabajo de ML, considera usar las **imágenes de la comunidad** a continuación que ofrecen versiones más recientes de CUDA y de frameworks.

## Imágenes recomendadas de la comunidad

Imágenes probadas por la comunidad AI/ML más amplia con mantenimiento activo y versiones recientes.

### Frameworks de deep learning

| Imagen                  | Etiqueta                         | Descripción                     | Caso de uso                               | Puertos            |
| ----------------------- | -------------------------------- | ------------------------------- | ----------------------------------------- | ------------------ |
| `pytorch/pytorch`       | `2.10.0-cuda13.0-cudnn9-runtime` | Último PyTorch con CUDA 13.0    | Entrenamiento/inferencia de deep learning | 8888 (Jupyter)     |
| `nvidia/cuda`           | `13.1.1-runtime-ubuntu22.04`     | Runtime NVIDIA CUDA             | Aplicaciones CUDA personalizadas          | -                  |
| `nvidia/cuda`           | `13.1.1-devel-ubuntu22.04`       | Herramientas de desarrollo CUDA | Construcción de proyectos CUDA            | -                  |
| `tensorflow/tensorflow` | `2.15.0-gpu`                     | Soporte TensorFlow GPU          | Flujos de trabajo TensorFlow              | 8888 (TensorBoard) |

### Motores de inferencia LLM

| Imagen                                          | Etiqueta | Descripción                      | Caso de uso                  | Puertos |
| ----------------------------------------------- | -------- | -------------------------------- | ---------------------------- | ------- |
| `vllm/vllm-openai`                              | `latest` | Servicio LLM de alto rendimiento | APIs LLM de producción       | 8000    |
| `ghcr.io/huggingface/text-generation-inference` | `3.3.5`  | Hugging Face TGI                 | Servicio empresarial de LLM  | 80      |
| `ollama/ollama`                                 | `latest` | Ejecutor local de LLM            | Despliegue local/edge de LLM | 11434   |

### Generación de imágenes

| Imagen                            | Etiqueta | Descripción                     | Caso de uso                             | Puertos |
| --------------------------------- | -------- | ------------------------------- | --------------------------------------- | ------- |
| `goolashe/automatic1111-sd-webui` | `latest` | Stable Diffusion WebUI          | Generación de arte AI                   | 7860    |
| `sinfallas/comfyui`               | `latest` | ComfyUI basado en nodos para SD | Flujos de trabajo avanzados de imágenes | 8188    |

### Entornos de desarrollo

| Imagen                        | Etiqueta                       | Descripción             | Caso de uso                    | Puertos |
| ----------------------------- | ------------------------------ | ----------------------- | ------------------------------ | ------- |
| `jupyter/tensorflow-notebook` | `latest`                       | Jupyter + TensorFlow    | Experimentación ML             | 8888    |
| `jupyter/pytorch-notebook`    | `latest`                       | Jupyter + PyTorch       | Investigación en deep learning | 8888    |
| `cschranz/gpu-jupyter`        | `v1.10_cuda-12.9_ubuntu-24.04` | Jupyter con soporte GPU | Computación GPU                | 8888    |

## Seleccionar una imagen

### A través de la interfaz web

1. Ir a **Marketplace** → Encontrar un servidor → **Alquilar**
2. En el formulario de pedido, selecciona **Imagen Docker** del desplegable
3. Elige entre opciones preconfiguradas o ingresa una imagen personalizada
4. Configura los puertos expuestos (separados por comas: `8888,7860,8000`)
5. Agrega variables de entorno si es necesario
6. Enviar pedido

### A través de la API

```json
{
  "image": "pytorch/pytorch:2.10.0-cuda13.0-cudnn9-runtime",
  "ports": [8888, 8000],
  "env": {
    "JUPYTER_ENABLE_LAB": "yes"
  }
}
```

## Imágenes Docker personalizadas

### Registros compatibles

* **Docker Hub**: `usuario/imagen:etiqueta`
* **GitHub Container Registry**: `ghcr.io/usuario/imagen:etiqueta`
* **NVIDIA NGC**: `nvcr.io/nvidia/imagen:etiqueta`
* **Google Container Registry**: `gcr.io/proyecto/imagen:etiqueta`

### Ejemplos

```bash
# PyTorch latest con CUDA 12.1
pytorch/pytorch:2.1.0-cuda12.1-cudnn8-runtime

# Base NVIDIA CUDA
nvidia/cuda:12.2.0-base-ubuntu22.04

# Hugging Face Transformers
huggingface/transformers-pytorch-gpu:4.35.0

# Imagen personalizada
tu-usuario/mi-modelo-ai:v1.0
```

### Requisitos para imágenes personalizadas

* ✅ Debe ser accesible públicamente
* ✅ Debe incluir soporte NVIDIA GPU para instancias GPU
* ✅ Basarse en imágenes con CUDA habilitado para aceleración por GPU
* ✅ Incluir controladores y bibliotecas necesarias
* ⚠️ Las imágenes grandes (>10GB) pueden tardar más en descargarse

## Configuración de puertos

Expón puertos para que tus aplicaciones sean accesibles desde el exterior:

| Puerto | Uso común            | Framework                     |
| ------ | -------------------- | ----------------------------- |
| 22     | Acceso SSH           | Sistema                       |
| 8888   | Jupyter Notebook/Lab | Jupyter                       |
| 7860   | Interfaces Gradio    | SD WebUI, aplicaciones Gradio |
| 8000   | Servidores API       | vLLM, FastAPI                 |
| 3000   | Aplicaciones web     | React, Node.js                |
| 8080   | Servicios HTTP       | Servicios web generales       |
| 11434  | API Ollama           | Ollama                        |
| 8188   | Interfaz ComfyUI     | ComfyUI                       |

### Establecer puertos en el formulario de pedido

```
8888,7860,8000
```

## Variables de entorno

Pasa configuración a tus contenedores:

### Ejemplos comunes

```bash
# Token de Hugging Face
HF_TOKEN=hf_tu_token_aquí

# Configuración del modelo
MODEL_NAME=meta-llama/Llama-2-7b-chat-hf
CUDA_VISIBLE_DEVICES=0

# Configuración de Jupyter
JUPYTER_ENABLE_LAB=yes
JUPYTER_TOKEN=tu_token_seguro

# Configuración de vLLM
VLLM_WORKER_MULTIPROC_METHOD=spawn
```

### Notas de seguridad

* ❌ No pongas secretos en variables de entorno
* ✅ Usa tokens temporales o claves API
* ✅ Monta secretos como volúmenes cuando sea posible

## Almacenamiento persistente

### Ubicaciones de almacenamiento

* `/workspace` - Generalmente persistente durante el período de alquiler
* `/root` - Puede restablecerse al reiniciar el contenedor
* `/tmp` - Almacenamiento temporal, no persistente

### Mejores prácticas

* Almacena datos importantes en `/workspace`
* Usa almacenamiento externo para copias de seguridad (S3, GCS, etc.)
* Descarga modelos a directorios persistentes
* Usa montajes de volúmenes para conjuntos de datos grandes

## Mejores prácticas

### Selección de imagen

1. **Usa etiquetas recientes** - Evita `latest` en producción, prefiere etiquetas versionadas
2. **Elige la base apropiada** - Haz coincidir la versión de CUDA con tu framework
3. **Considera el tamaño de la imagen** - Las imágenes más pequeñas se descargan más rápido
4. **Comprueba el mantenimiento** - Prefiere imágenes con mantenimiento activo

### Seguridad

1. **Expón el mínimo de puertos** - Solo expón los puertos que necesites
2. **Usa autenticación** - Establece tokens para Jupyter/interfaces web
3. **Actualiza regularmente** - Usa versiones recientes de imágenes
4. **Monitorea el acceso** - Verifica quién se conecta a tus servicios

### Rendimiento

1. **Compatibilidad GPU** - Verifica que la versión de CUDA coincida con tus necesidades
2. **Pre-descarga modelos** - Incluye modelos en imágenes personalizadas para un arranque más rápido
3. **Optimiza contenedores** - Usa builds multietapa, minimiza capas
4. **Gestión de caché** - Aprovecha el cache de capas de Docker

## Solución de problemas

### La imagen no arranca

```bash
# Comprueba si la imagen existe y es pública
docker pull tu-imagen:etiqueta

# Verifica la compatibilidad con CUDA
nvidia-smi
nvcc --version
```

**Problemas comunes:**

* La imagen no existe o es privada
* Versión de CUDA incompatible
* Espacio en disco insuficiente
* Arquitectura incorrecta (arm64 vs x86\_64)

### GPU no accesible

```bash
# Comprueba la disponibilidad de la GPU
nvidia-smi

# Prueba CUDA en el contenedor
python -c "import torch; print(torch.cuda.is_available())"
```

**Soluciones:**

* Usa imágenes base compatibles con GPU
* Asegura que NVIDIA Container Toolkit esté disponible
* Comprueba la compatibilidad del driver CUDA

### No se pueden acceder a los puertos expuestos

1. Espera a que el contenedor arranque completamente (revisa los logs)
2. Verifica que el servicio esté ejecutándose dentro del contenedor: `netstat -tlnp`
3. Comprueba si el servicio se enlaza a 0.0.0.0, no a 127.0.0.1
4. Confirma que el puerto esté expuesto en el formulario de pedido

### Problemas de rendimiento

* Usa almacenamiento SSD local para pesos de modelos
* Optimiza los tamaños de lote para la memoria GPU disponible
* Monitorea la utilización de la GPU: `nvidia-smi -l 1`
* Comprueba uso de CPU/memoria: `htop`

## Ejemplos de inicio rápido

### Desplegar Jupyter con PyTorch

```bash
Imagen: pytorch/pytorch:2.10.0-cuda13.0-cudnn9-runtime
Puertos: 8888
Comando: jupyter lab --ip=0.0.0.0 --allow-root --no-browser
```

### Desplegar servidor API vLLM

```bash
Imagen: vllm/vllm-openai:latest
Puertos: 8000
Env: MODEL_NAME=microsoft/DialoGPT-medium
Comando: python -m vllm.entrypoints.openai.api_server --model $MODEL_NAME --host 0.0.0.0
```

### Desplegar Stable Diffusion WebUI

```bash
Imagen: goolashe/automatic1111-sd-webui:latest
Puertos: 7860
Comando: --listen --api --xformers
```

### Desplegar Ollama

```bash
Imagen: ollama/ollama:latest
Puertos: 11434
Comando: ollama serve
# Luego: ollama run llama2 (dentro del contenedor)
```
