Cómo solucionar docker run con exit code 1 en Raspberry Pi
¿Por qué ocurre?
El error Exited (1) indica que el proceso principal del contenedor terminó con un código de error no cero. En tu caso específico, el problema está en el comando docker run --net = host. El signo igual (=) entre --net y host no es válido en Docker CLI. Docker interpreta --net = como una opción desconocida, lo que provoca que el contenedor falle al iniciar.
Esto explica por qué funciona en la VM (posiblemente con una versión más permisiva o con un shell que hace algo distinto con los espacios), pero falla en el Raspberry Pi físico (donde el shell es más estricto y Docker rechaza la opción inválida).
Pasos para solucionarlo
-
Elimina el signo igual y los espacios innecesarios en la opción
--net. - Verifica que el contenedor se ejecute en primer plano para diagnosticar errores adicionales.
- Si persiste el problema, revisa los logs del contenedor.
Comando corregido
# ❌ INCORRECTO (con espacios y signo igual)
docker run --net = host -d -t myimage
# ✅ CORRECTO (sin espacios ni signo igual)
docker run --net host -d -t myimage
⚠️ Nota crítica: En versiones recientes de Docker,
--net=hostno es compatible con Raspberry Pi en modo no privado (es decir, si no estás ejecutando Docker como root o sinsudo). Si sigues teniendo problemas, ejecuta consudo:
sudo docker run --net host -d -t myimage
Diagnóstico adicional (si el error persiste)
Si tras corregir el comando sigue fallando:
- Ejecuta en primer plano para ver el error en tiempo real:
docker run --net host -it --rm myimage
(Elimina -d y añade -it para modo interactivo y terminal)
- Revisa los logs del contenedor si ya se creó:
docker logs <nombre_o_id_del_contenedor>
-
Verifica compatibilidad de arquitectura:
- Si la imagen
myimagefue construida paraamd64y ejecutas en Raspberry Pi (armhfoarm64), fallará silenciosamente. - Usa
docker inspect myimage --format '{{.Architecture}}'para verificar. - Si es necesario, reconstruye la imagen para ARM:
docker build --platform linux/arm/v7 -t myimage . - Si la imagen
Pro-tip: Automatiza la validación del comando
Crea un script de verificación rápida:
#!/bin/bash
# validate-docker-run.sh
set -e
echo "Validando sintaxis del comando..."
if [[ "$*" =~ "--net\s*=" ]]; then
echo "❌ ERROR: '--net' no debe tener espacios ni '='"
echo " Usa: --net host (sin espacios ni signo igual)"
exit 1
fi
echo "✅ Sintaxis OK. Ejecutando..."
exec docker run "$@"
Guarda como validate-docker-run.sh, hazlo ejecutable (chmod +x validate-docker-run.sh) y úsalo así:
./validate-docker-run.sh --net host -d -t myimage
🔍 Dato clave: En Raspberry Pi, los errores de arquitectura y permisos son las segundas causas más comunes de
Exited (1)tras errores de sintaxis en el comando. Si todo falla, ejecutadocker infoy verifica queServer VersionyArchitecturecoincidan con lo esperado para tu Raspberry Pi.
Top comments (0)