/ / Docker su sistemi embedded, perché no? - finestra mobile, contenitori, embedded-linux, intel-edison

Docker su sistemi embedded, perché no? - finestra mobile, contenitori, embedded-linux, intel-edison

Di recente c'è stato un progetto a modo mioimplica l'orchestrazione di diversi dispositivi (abilitati per Linux), la distribuzione di software e la possibilità di aggiornare le applicazioni quando il code base viene aggiornato in un repository git.

L'idea iniziale era di creare un'immagine standard per ciascun dispositivo, e ho deciso di iniziare a installare docker su un UDOO Quad e un Intel Edison, ma senza alcun successo fino a questo punto.

Il mio pensiero è che sembra essere una buona ideainstalla Docker su dispositivi embedded, ma se così fosse, sicuramente sarebbe stato già portato a destinazione. L'unico gruppo che sembra stia facendo questo sforzo è Resin.io.

C'è qualcosa che mi manca, o c'è una chiara ragione per cui Docker non ha senso sui dispositivi embedded? Se non c'è una ragione, e questa fa ha senso girare Docker su sistemi embedded, c'è qualcosa che ho trascurato là fuori: ci sono fonti di discussione sul porting, o how-to che trattano questo?

risposte:

5 per risposta № 1

Ho preso in considerazione l'esecuzione della finestra mobile su dispositivi embedded (un sistema di mips), ma non è andata così. Ci sono alcuni problemi con questo, a mio modesto avviso:

  1. Docker è implementato in Golang. Attualmente non esiste una catena di strumenti disponibile per i mips per compilare go. Dovrai creare tu stesso la catena di strumenti usando gcc-go.

  2. La dimensione della finestra mobile è maggiore di lxc. In un computer desktop questo non è un problema, ma il dispositivo incorporato ha una memoria flash limitata.

  3. Docker utilizza alcune funzionalità abbastanza aggiornate del kernel di Linux. A volte la versione del kernel sui dispositivi embedded non è così nuova e il back-port è necessario per farlo funzionare.

  4. L'immagine della finestra mobile deve essere costruita sullo stessoarchitettura come ambiente di runtime. Ciò significa che se si desidera eseguire un contenitore docker su Raspberry Pi, l'immagine della finestra mobile deve essere costruita su un sistema ARM-architecture. QEMU può essere utilizzato per creare un'immagine docker nel cloud, ma non supporta tutte le architetture CPU utilizzate nel sistema incorporato (ad esempio, al momento non supporta MIPS)

Alla fine, lxc è stato scelto per l'attività specifica di eseguire un contenitore sul dispositivo incorporato. Ha funzionalità limitate rispetto alla finestra mobile, ma attualmente soddisfa i requisiti del progetto.


1 per risposta № 2

C'è un grande articolo su LinkedIn che descrive la sua esperienza con questo https://www.linkedin.com/pulse/whale-jar-when-running-docker-embedded-linux-good-thing-fletcher#pulse-comments-urn:li:article:7736487387895237975


0 per risposta № 3

Spesso i sistemi embedded hanno un tasso molto lento dimodificare. Docker funziona bene su una costruzione minima e poi sovrappone. Se si desidera sacrificare il sovraccarico della finestra mobile in esecuzione su un sistema integrato minimo per la capacità della finestra mobile di avere un sistema di compilazione e una costante velocità di modifica, è possibile esplorarlo.