🛠 Conteneuriser avec Docker sur le PC x86 embarqué

LattePanda 3 Delta (id : lattepanda-3) · avance · Schéma : IMG-lattepanda-3-avance-1-docker.svg — La LattePanda 3 Delta sous Ubuntu exécutant plusieurs conteneurs Docker (web, base de données, MQTT) au-dessus du moteur Docker et du noyau Linux, image eMMC en dessous.

Objectifs

La LattePanda 3 Delta est un PC x86-64 complet : contrairement aux SBC ARM, toutes les images Docker officielles du registre (amd64) tournent sans émulation. Ce tutoriel installe Docker Engine sous Ubuntu 22.04, lance un premier conteneur, puis déploie une petite pile de services avec docker compose en tenant compte des contraintes embarquées : eMMC de 64 Go (dimensionner les volumes), TDP de 10 W (limiter la CPU), alimentation 12 V/24 W. On termine par le démarrage automatique au boot.

Matériel

Code complet

# 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

Vérification attendue

hello-world s'affiche, docker compose ps montre les deux services Up, et le curl renvoie HTTP/1.1 200 OK. Après sudo reboot, les conteneurs redémarrent seuls grâce à restart: unless-stopped. docker system df permet de surveiller l'occupation de l'eMMC.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels