Solución de problemas
Empieza siempre aquí:
docker logs --tail 50 neurogrid-agent
El agente se detuvo después de que cambié de red
Síntoma. Los heartbeats funcionaban bien, y de repente todos fallan. O un trabajo carga el modelo y luego muere al abrir su túnel, siempre después de más o menos la misma cantidad de segundos. Tu internet funciona bien en todo lo demás.
Causa. Docker le da a un contenedor su configuración de DNS cuando el contenedor se crea, y nunca la actualiza. Mueve la máquina a una red distinta — una laptop que deja un hotspot, un nuevo lease de DHCP, un cambio de router — y el contenedor sigue preguntándole a un resolutor que ya no existe. El enrutamiento sigue funcionando, así que nada parece desconectado: solo fallan los nombres, cada uno colgado hasta que expira.
Arreglo. Reconectar el Wi-Fi no ayuda. Recrea el contenedor, o simplemente reinícialo:
docker restart neurogrid-agent
El agente lo dice él mismo cuando pasa esto — busca
Cannot resolve the backend's hostname en los logs.
Prevención. Instala con --dns 1.1.1.1 --dns 8.8.8.8, como en las
instrucciones de Linux y Windows.
Esos resolutores existen en cualquier red, así que al contenedor deja de
importarle en cuál está la máquina.
nvidia-smi funciona en el host pero no en Docker
Falta el NVIDIA Container Toolkit o el daemon no lo ha detectado.
# Linux
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
docker run --rm --gpus all nvidia/cuda:12.4.1-base-ubuntu22.04 nvidia-smi
En Windows, esto suele significar que Docker Desktop no está en el backend de WSL2, o que el driver de Windows es más viejo que 575.
El registro falla con un token inválido
El log dice que el backend no reconoce el token. Casi siempre es uno de estos:
- Se truncó al copiarlo. Los tokens de máquina son largos; copia la cadena completa.
- Ya fue usado por otra máquina. Un token reclama una sola GPU. Consigue uno nuevo desde la consola.
- El listado fue cancelado en la consola antes de que el agente se registrara.
Dice que el archivo de configuración es escribible y se niega a iniciar
A propósito. Ese archivo define con qué servidor habla el agente, así que cualquiera que pueda escribirlo puede redirigir tu máquina y quedarse con su trabajo.
docker exec neurogrid-agent chmod 600 /data/config/config.yaml
docker restart neurogrid-agent
Los trabajos fallan justo después de que el modelo carga
Casi siempre es el túnel, y casi siempre es el DNS — ver arriba. Si el DNS está sano, revisa que el HTTPS de salida en el puerto 443 no esté bloqueado; algunas redes corporativas y de campus lo filtran.
El disco se llenó
Los pesos de los modelos son grandes y la caché crece con cada modelo distinto que sirves.
docker system df # a dónde se fue
docker image prune -f # imágenes sin etiqueta
docker volume rm neurogrid-hf-cache # la caché de modelos, solo mientras está inactivo
Nunca elimines neurogrid-data — es tu registro.
La GPU aparece desconectada pero el contenedor está corriendo
El agente está vivo pero sus heartbeats no están llegando. Revisa los logs
buscando gRPC error sending heartbeat, y luego:
docker exec neurogrid-agent getent hosts api.neurogrid.cc
Sin salida significa DNS — reinicia el contenedor. Con salida pero igualmente desconectado significa que la conexión se está bloqueando en algún punto entre tú y nosotros.
Un trabajo falló y no sé por qué
docker logs neurogrid-agent 2>&1 | grep -iE "error|failed"
Los contenedores de trabajo se eliminan cuando terminan, así que sus propios logs ya no están cuando los buscas. El log del agente conserva la razón.
Sigo atascado
Abre un issue en github.com/NeuroGrid-AI-exchange con la salida de:
docker logs --tail 100 neurogrid-agent
docker inspect neurogrid-agent --format '{{.Config.Image}}'
nvidia-smi --query-gpu=name,driver_version,memory.total --format=csv