docker run con exit code 1 en Raspberry Pi El error Exited (1) indica que el proceso principal del contenedor terminó con un código de salida no cero —es decir, falló. El hecho de que funcione en una VM de Raspberry Pi pero no en el hardware físico apunta a una diferencia en el entorno de ejecución. Las causas más comunes en Raspberry Pi son: amd64 (x86_64) y se intenta ejecutar en ARM (armv7l o aarch64 ).binfmt_misc configurado, Docker no puede ejecutar binarios de otra arquitectura.docker run
: El espacio en --net = host
(con espacios alrededor del =
) es un error de sintaxis que no siempre es detectado por Docker, pero puede causar comportamientos erráticos.# Arquitectura del Raspberry Pi (hardware físico) uname -m docker inspect myimage --format '{{.Architecture}}' Si uname -m muestra armv7l o aarch64 , y la imagen reporta amd64 , la arquitectura no coincide. docker run
El comando original tiene un error grave: --net = host
(espacios alrededor del =
). Docker interpreta =
como parte del valor del flag, lo que puede causar fallos silenciosos o errores de parseo. ✅ Comando corregido: docker run --net=host -d -t myimage ⚠️ Nota crítica: En versiones recientes de Docker, --net=host no funciona en contenedores no Linux (como en Raspberry Pi conarmhf ), y puede causar fallos si el kernel no lo soporta. Si el contenedor no necesita acceso directo a la red del host, usa--net=bridge . docker run --net=host -it --rm myimage Elimina -d (background) y añade-it para ver logs en tiempo real y capturar errores. Instala soporte multiarquitectura:
sudo apt update && sudo apt install -y qemu-user-static binfmt-support
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
Luego ejecuta de nuevo tu contenedor. docker ps -a # Encuentra el ID del contenedor con Exited (1) docker logs <container_id> uname -m
docker inspect myimage --format '{{.Architecture}}'
docker run --net=host -it --rm myimage
sudo apt update && sudo apt install -y qemu-user-static binfmt-support
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker run --net=host -d -t myimage
Si controlas la construcción de la imagen, nunca uses imágenes amd64 en Raspberry Pi. Usa:
FROM --platform=linux/arm/v7 raspbian/stretch
FROM --platform=linux/arm64 ubuntu:22.04
Y construye con: docker build --platform linux/arm/v7 -t myimage . ✅ Consejo definitivo: Usa docker buildx para construir multiarquitectura: docker buildx build --platform linux/arm/v7,linux/arm64 -t myimage . Esto evita 99% de los errores de Exited (1) en Raspberry Pi. Si te sirvió esta ayuda, suscríbete para recibir los errores más comunes de la semana y cómo evitarlos. 👉 Suscríbete aquí