🛠 Conteneuriser avec Docker sur le PC x86 embarqué
Objetivos
La LattePanda 3 Delta es un PC x86-64 completo: a diferencia de las SBC ARM, todas las imágenes oficiales de Docker del registro (amd64) funcionan sin emulación. Este tutorial instala Docker Engine bajo Ubuntu 22.04, lanza un primer contenedor y luego despliega una pequeña pila de servicios con docker compose, teniendo en cuenta las restricciones embebidas: eMMC de 64 GB (dimensionar los volúmenes), TDP de 10 W (limitar la CPU), alimentación de 12 V/24 W. Se termina con el inicio automático al arrancar.
Material
- LattePanda 3 Delta bajo Ubuntu 22.04, conectada a Internet (ver el tutorial de Wi-Fi/Ethernet)
- Espacio en disco: verificar
df -h /antes de descargar imágenes (eMMC de 64 GB en total) - Opcional para producción: SSD NVMe en la ranura M.2 Key M 2280 (PCIe 3.0 x2) para descargar la eMMC
Código completo
# 1. Installer Docker Engine (paquet Ubuntu standard, architecture amd64)
sudo apt update
sudo apt install -y docker.io docker-compose-plugin
sudo usermod -aG docker $USER # puis se reconnecter
# 2. Premier conteneur de test
systemctl --now enable docker
docker run --rm hello-world
# 3. Petite pile de services — fichier compose.yaml
mkdir -p ~/pile && cd ~/pile
# compose.yaml — pile embarquée légère
services:
web:
image: nginx:alpine
ports: ["8080:80"]
restart: unless-stopped
deploy:
resources:
limits:
cpus: "1.0" # le N5105 a 4 threads, on ménage la carte
memory: 256M
mosquitto:
image: eclipse-mosquitto:2
ports: ["1883:1883"]
volumes:
- ./mosquitto:/mosquitto/data
restart: unless-stopped
# 4. Démarrer et vérifier
docker compose up -d
docker compose ps
docker stats --no-stream # surveiller la CPU pendant la charge
curl -sI http://localhost:8080 | head -1
Verificación esperada
Se muestra hello-world, docker compose ps muestra los dos servicios en estado Up, y el curl devuelve HTTP/1.1 200 OK. Después de sudo reboot, los contenedores se reinician solos gracias a restart: unless-stopped. docker system df permite supervisar la ocupación de la eMMC.
Errores frecuentes
- Imágenes ARM no encontradas: muchos tutoriales de SBC citan imágenes
linux/arm64; aquí se necesitaamd64— es precisamente la ventaja x86 de la placa. - eMMC saturada: 64 GB compartidos con el SO; purgar con
docker system prune -ay mover/var/lib/dockera un NVMe M.2 si está instalado. - Calor/ruido: la refrigeración es activa, pero el ventilador solo arranca al umbral configurado en la BIOS (comportamiento normal, FAQ); limitar la CPU de los contenedores evita alcanzar el umbral.
permission denieden el socket de Docker: es necesario cerrar sesión y volver a iniciar sesión después de ejecutarusermod -aG docker.- Corte de alimentación durante escrituras: para un equipo sin SAI, prever una alimentación conforme (USB-C PD o JST 12 V, conmutación automática entre las dos entradas) o el UPS Hat DFR0682 en modo HID-UPS.
- Watchdog activo: si un guardián IT8613E está armado en la placa, suspenderlo antes de actualizaciones largas (documentado para Windows Update, misma precaución aquí).
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.pyPythonbouton.pyPythonservo.pyPythonanalogique.pyPythonrespiration.pyPythonneopixel.pyPython