Cómo solucionar docker run con exit code 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 binarios compatibles: El
ENTRYPOINToCMDdel contenedor intenta ejecutar un binario incompatible con ARM. - Problemas de permisos o recursos: Especialmente en entornos headless o con configuraciones de red restrictivas.
-
Uso incorrecto de
--net=host: En Raspberry Pi con ciertas versiones de Docker o sistemas operativos (como Raspberry Pi OS), puede causar fallos silenciosos.
🔍 Nota crítica: En tu comando
docker run --net = host, hay espacios alrededor del=. Esto es inválido y causa un error de parsing. Docker interpreta--netcomo--net =, lo que probablemente falla antes de ejecutar el contenedor.
Pasos para solucionarlo
1. Corrige el comando: elimina espacios en --net=host
# ❌ INCORRECTO (con espacios)
docker run --net = host -d -t myimage
# ✅ CORRECTO (sin espacios)
docker run --net=host -d -t myimage
⚠️ Importante: En Docker CLI, los argumentos con
=no deben tener espacios.--net=hostes obligatorio.
2. Verifica la arquitectura de la imagen y del host
Ejecuta en tu Raspberry Pi:
# Verifica arquitectura del host
uname -m
# Verifica arquitectura de la imagen
docker inspect myimage --format '{{.Architecture}}'
Si el resultado de docker inspect es amd64, pero tu Raspberry Pi es armv7l o aarch64, la imagen no es compatible.
3. Construye o descarga una imagen ARM-compatible
Opción A: Usa imágenes oficiales con soporte multi-arquitectura
# Ejemplo: imagen oficial de Nginx con soporte ARM
docker run --net=host -d -p 80:80 arm32v7/nginx:latest
# o para ARM64
docker run --net=host -d -p 80:80 arm64v8/nginx:latest
Opción B: Reconstruye la imagen desde tu Raspberry Pi
# Clona tu repo y construye localmente
git clone <tu-repo>
cd <tu-proyecto>
docker build -t myimage .
Opción C: Usa buildx para construir multi-arch desde otra máquina
docker buildx create --use
docker buildx build --platform linux/arm/v7 -t myimage:arm . --push
4. Ejecuta en primer plano para depurar
# Elimina -d para ver logs en tiempo real
docker run --net=host -it --rm myimage
Si ves errores como:
-
standard_init_linux.go:211: exec user process caused: no such file or directory→ Falta binario o arquitectura incompatible. -
standard_init_linux.go:228: exec user process caused: exec format error→ Binario x86 ejecutándose en ARM.
5. Verifica permisos y recursos en Raspberry Pi
- Asegúrate de que el usuario esté en el grupo
docker:
sudo usermod -aG docker $USER
# Luego reinicia sesión o ejecuta: newgrp docker
- Verifica espacio en disco:
df -h /var/lib/docker
- Si usas
--net=host, prueba sin él primero:
docker run -d -t myimage # sin red host
Bloque de código corregido (caso típico)
# 1. Verifica arquitectura
uname -m # Debe coincidir con la arquitectura de la imagen
# 2. Ejecuta sin errores de parsing y en primer plano para depurar
docker run --net=host -it --rm myimage
# 3. Si falla por arquitectura, usa imagen ARM
docker run --net=host -d -t arm32v7/myimage # o arm64v8/myimage
Pro-tip: Diagnóstico rápido con docker events
Abre una terminal nueva y ejecuta:
docker events --filter event=die
Luego ejecuta tu contenedor. Verás en tiempo real el código de salida y causa del fallo.
✅ Solución definitiva:
Corrige --net = host → --net=host y asegura compatibilidad de arquitectura. El 90% de los casos en Raspberry Pi se resuelven así.
Top comments (0)