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. En Raspberry Pi, los casos más comunes son:
-
Arquitectura incompatible: La imagen fue construida para
amd64(x86_64) pero Raspberry Pi usaarmhfoarm64. -
Falta de binarios compatibles: El
ENTRYPOINT/CMDdel contenedor ejecuta un binario compilado para otra arquitectura. - Problemas de permisos o recursos: Especialmente en Raspberry Pi con sistemas minimalistas (Raspbian/Debian).
-
Sintaxis inválida en el comando: El espacio en
--net = hostes un error grave.
Pasos para solucionarlo
1. Corrige la sintaxis del comando
El comando original tiene un error crítico: --net = host debe escribirse sin espacios alrededor del =.
# INCORRECTO (genera error de parsing)
docker run --net = host -d -t myimage
# CORRECTO
docker run --net host -d -t myimage
2. Ejecuta en primer plano para ver el error real
Elimina -d (modo detached) y añade -it para ver el output:
docker run --net host -it myimage
3. Verifica la arquitectura del contenedor
Ejecuta estos comandos en tu Raspberry Pi:
# Verifica la arquitectura del host
uname -m
# Verifica la arquitectura de la imagen
docker inspect myimage | grep -i architecture
Si la imagen es amd64 y tu Pi es armv7l o aarch64, no funcionará.
4. Usa imágenes multiarquitectura o reconstruye
Si la imagen no es compatible:
# Opción A: Busca una versión ARM de la imagen
docker pull arm32v7/nginx # Ejemplo para ARMv7
docker pull arm64v8/nginx # Ejemplo para ARM64
# Opción B: Reconstruye la imagen en el Pi
docker build -t myimage .
5. Verifica dependencias críticas
En Raspberry Pi, asegúrate de tener instalados:
sudo apt update && sudo apt install -y libseccomp2 libsystemd0
Bloque de código corregido
# Comando corregido + diagnóstico
docker run --net host -it --rm myimage
# Si falla por arquitectura, usa QEMU para emulación (lento)
docker run --platform linux/arm/v7 --net host -it --rm myimage
⚠️ Nota crítica: Si usas
--platform linux/arm/v7, necesitas habilitar QEMU en Docker:docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
Pro-tip: Diagnóstico rápido en Raspberry Pi
Crea este script de diagnóstico:
#!/bin/bash
echo "=== ARQUITECTURA DEL HOST ==="
uname -m
echo -e "\n=== ARQUITECTURA DE LA IMAGEN ==="
docker inspect myimage --format '{{.Architecture}}'
echo -e "\n=== LOGS DEL CONTENEDOR ==="
docker run --net host -d myimage
sleep 2
docker logs $(docker ps -lq)
Este script te dará la causa raíz en menos de 30 segundos.
Top comments (0)