Cómo solucionar docker run con error Exited (1) en Raspberry Pi
¿Por qué ocurre este error?
El código de salida 1 indica que el proceso principal del contenedor terminó con un error genérico. En Raspberry Pi, los casos más comunes son:
-
Arquitectura incompatible: La imagen fue construida para
amd64(x86_64), pero Raspberry Pi usaarm32v7oarm64v8. - Falta de dependencias del sistema: La imagen espera bibliotecas o drivers no disponibles en el entorno ARM de Raspberry Pi.
-
Problemas de permisos o recursos: Acceso denegado a dispositivos (
/dev/gpiomem,/dev/vchiq, etc.) o falta de memoria. -
Errores de sintaxis en el comando: En tu caso, el espacio en
--net = hostes crítico — Docker lo interpreta como un nombre de red inválido.
Pasos para solucionarlo
1. Corrige la sintaxis del comando (¡error inmediato!)
# ❌ INCORRECTO (espacios alrededor del '=')
docker run --net = host -d -t myimage
# ✅ CORRECTO (sin espacios)
docker run --net host -d -t myimage
⚠️ Nota crítica:
--net = hostes interpretado por Docker como--netseguido de un argumento"= host", lo cual crea una red llamada"= host"que no existe. Esto fuerza al contenedor a fallar al inicio.
2. Verifica la arquitectura de la imagen
docker inspect myimage --format '{{.Architecture}}'
- Si muestra
amd64, no funcionará en Raspberry Pi (a menos que uses QEMU emulación). - Para Raspberry Pi 3/4 (ARM 32-bit): necesitas
arm32v7. - Para Raspberry Pi 4/5 (ARM 64-bit): necesitas
arm64v8.
3. Ejecuta en primer plano para ver el error real
docker run --net host -it --rm myimage
- Elimina
-d(background) y añade-itpara ver logs en tiempo real. - Si el contenedor arranca y luego falla, revisa los logs:
docker logs <container_id>
4. Verifica permisos y dispositivos
En Raspberry Pi, muchos contenedores requieren acceso a dispositivos del sistema:
# Ejemplo para GPIO (ajustar según necesidad)
docker run --net host --privileged -v /dev:/dev -d myimage
⚠️
--privilegedes peligroso en producción. Usa--cap-addo--devicepara permisos específicos.
Bloque de código corregido (caso típico)
# 1. Verifica arquitectura
docker inspect myimage --format '{{.Architecture}}'
# 2. Si es incompatible, reconstruye para ARM
# En Raspberry Pi (ejecutar en el Pi):
docker build --platform linux/arm/v7 -t myimage-arm .
# 3. Ejecuta con sintaxis correcta y permisos necesarios
docker run --net host --rm -it myimage-arm
Pro-tip: Diagnóstico rápido en Raspberry Pi
# Verifica si el contenedor se inicia pero se detiene inmediatamente
docker run --net host -d myimage && sleep 1 && docker ps -a
# Si falla, revisa logs inmediatos:
docker run --net host -it --rm myimage 2>&1 | tee /tmp/container.log
Si el error persiste, compara:
- Versión de Docker (
docker --version) - Kernel (
uname -a) - Sistema operativo (
cat /etc/os-release)
🔍 Caso real común: Imágenes construidas con
node:alpine(x86) fallan en Raspberry Pi. Usanode:alpine-arm32v7oarm32v7/node:alpine.
Top comments (0)