Sommario:
- Passaggio 1: perché Docker?
- Passaggio 2: Docker Overhead
- Passaggio 3: installa Docker
- Passaggio 4: creazione dell'immagine Docker
- Passaggio 5: velocità di creazione dello sviluppo rispetto alla dimensione dell'immagine
- Passaggio 6: immagini multi-arco
- Passaggio 7: buon RPi
Video: Costruisci un'immagine Docker per Raspberry Pi: 7 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
Queste istruzioni mostrano come creare un'immagine Docker per Raspberry Pi.
Passaggio 1: perché Docker?
Puoi usare Raspberry Pi (RPi) per fare molte cose, piccoli server web, assistente AI, robotica … ecc.
Molti progetti che vorresti provare, ma i punti dolenti sono:
È ora di costruire
RPi non è entusiasta della potenza di elaborazione e l'unità SD/USB ha limitato la velocità di I/O. Utilizzare apt install all dependency package richiede un'ora e la compilazione del sorgente richiede più ore. Soprattutto per i progetti relativi all'intelligenza artificiale, è tempo di aspettare più del tempo di provare.
Conflitto di versione
Tutti provano molti progetti in un RPi. Quando hai provato un progetto e desideri passare a un altro, potresti riscontrare alcuni errori di compilazione causati dal conflitto della versione delle librerie di dipendenze con il progetto precedente. Alcune biblioteche smettono di svilupparsi da qualche anno e dipendono da biblioteche molto antiche. Al contrario, il progetto attivo dipendeva dalle librerie più recenti. Entrambi i progetti non possono coesistere nella stessa unità SD/USB?.
Backup immagine
Poiché alcuni progetti non possono coesistere, è sufficiente acquistare più unità SD/USB per mantenere l'immagine di ogni progetto dipendente. Se il denaro non è limitato?. Ma aumenta le difficoltà di gestione di file/immagini, a volte è necessario scambiare SD/USB e avviare molte volte per scoprire cosa si desidera.
Difficile da condividere
Quando hai creato il tuo progetto e vorresti condividere la fonte con gli amici, i tuoi amici potrebbero ricevere il feedback di build fallita. Versione di distribuzione/librerie troppo vecchia o troppo nuova, parametri di costruzione e alcuni trucchi. È necessario utilizzare il tempo per risolvere altri problemi di costruzione ma non per supportare il progetto stesso.
I punti dolenti di cui sopra sono la mia esperienza in questi pochi anni. Docker può aiutare la maggior parte di esso.
Docker avvia la compilazione dalla selezione di un'immagine padre predefinita. Per esempio. debian:jessie-slim parte da una vecchia distribuzione stabile Debian leggera; node:10-buster-slim inizia dalla distribuzione leggera di Debian con Node.js 10 installato. L'immagine predefinita può far risparmiare molto tempo per flashare l'immagine, ottenere aggiornamenti e installare librerie dipendenti. Ogni progetto può iniziare da diverse versioni del sistema operativo, versione runtime e versione delle librerie. Quando hai finito di sviluppare il tuo progetto, puoi inviare l'immagine Docker all'hub docker e condividerla con tutti. È possibile conservare tutti i dati del progetto sulla stessa SD/USB (i dati dovrebbero essere backup di routine su altri supporti). Per salvare l'archiviazione locale, puoi anche ripulire l'immagine Docker quando non la usi, ogni volta che puoi estrarre di nuovo dall'hub Docker.
Passaggio 2: Docker Overhead
Docker ha aggiunto un livello di virtualizzazione, il sovraccarico è un problema. Non ho testato troppo sull'overhead di Docker. La maggior parte dei risultati su Google richiede un sovraccarico molto basso e ho trovato questo documento su alcune ricerche correlate:
domino.research.ibm.com/library/cyberdig.n…
Passaggio 3: installa Docker
Esegui semplicemente:
curl -sSL https://get.docker.com | SH
Rif.:
www.raspberrypi.org/blog/docker-comes-to-…
docs.docker.com/get-started/
Passaggio 4: creazione dell'immagine Docker
Si prega di trovare la guida ufficiale sulla creazione di immagini docker:
docs.docker.com/get-started/part2/
Ho 2 progetti che utilizzano Docker, potresti trovare il Dockerfile come riferimento:
BanateCAD richiede il runtime Lua e alcune librerie Lua aggiuntive. Solo Lua 5.1 può essere compatibile con tutte le librerie Lua richieste, ma è il prodotto del 2006. L'ultima distribuzione Debian che può creare il successo di Lua 5.1 è Jessie (la versione precedente all'attuale vecchia stabile Debian). Quindi ho creato un'immagine Docker dell'ambiente Lua 5.1 per eseguirlo
github.com/moononournation/BanateCAD/tree/…
OpenCV è un progetto in via di sviluppo attivo, il codice sorgente dipende dalle librerie e dal compilatore più recenti. Quindi è molto alta la possibilità di creare errori, firma del metodo delle librerie, versione del compilatore, conflitto di dipendenze … Vorrei usare opencv4nodejs per creare un'app semplice e non richiedere le funzionalità più recenti. Quindi, quando ho trovato un modo per creare il successo di opencv4nodejs, vorrei congelarlo su un'immagine Docker ed eseguire la codifica dell'applicazione effettiva
github.com/moononournation/face-aware-phot…
Passaggio 5: velocità di creazione dello sviluppo rispetto alla dimensione dell'immagine
Potresti scoprire che il mio progetto face-aware-photo-osd ha 2 versioni di Dockfile:
github.com/moononournation/face-aware-phot…
Durante lo sviluppo, mi piace dividere il comando RUN il più piccolo possibile e organizzare molto probabilmente per cambiare il comando RUN all'ultimo passaggio. Quindi, per ogni modifica di build per lo sviluppo, posso utilizzare il più possibile il livello di build precedente e risparmiare molta velocità di build.
Al contrario, combinerò tutti i comandi RUN in uno prima del rilascio. un livello inferiore può ridurre di molto la dimensione dell'immagine Docker. Il mio progetto face-aware-photo-osd come esempio può ridurre le dimensioni di oltre 100 MB.
Passaggio 6: immagini multi-arco
Come accennato in precedenza, RPi non è un appassionato di potenza di elaborazione. Utilizzare l'immagine Docker build RPi potrebbe non essere una buona scelta, specialmente quando il tuo unico RPi sta eseguendo altri progetti.
Anche l'utilizzo di un computer x86 può aiutarti a creare l'immagine Docker, per ulteriori dettagli qui:
www.docker.com/blog/multi-arch-images/
semplici 2 comandi possono creare x86 e ARM Docker Image in parallelo:
docker buildx create --use
docker buildx build --platform linux/amd64, linux/arm -t moononournation/debian-imagemagick-lua-meshlab:1.0.1 --push.
Multi Arch può creare un'immagine multipiattaforma con lo stesso tag immagine Docker, in modo che il tuo progetto possa essere eseguito senza problemi su macchine diverse. per esempio.
docker run -it moononournation/debian-imagemagick-lua-meshlab:1.0.1
Non importa che tu esegua il comando sopra su RPi o sul tuo computer x86, puoi ottenere un ambiente di runtime Lua.
Passaggio 7: buon RPi
Ora puoi sviluppare e condividere il tuo progetto RPi più facilmente!
Consigliato:
Interessante guida alla programmazione per i designer: fai funzionare la tua immagine (seconda parte): 8 passaggi
Interessante guida alla programmazione per il designer: fai funzionare la tua immagine (seconda parte): la matematica, per la maggior parte di voi, sembra inutile. Il più comunemente usato nella nostra vita quotidiana è semplicemente aggiungere, sottrarre, moltiplicare e dividere. Tuttavia, è molto diverso se puoi creare con il programma. Più conosci, più risultati meravigliosi otterrai
Come creare una fantastica immagine del profilo per il tuo Chromebook: 9 passaggi
Come creare una fantastica immagine del profilo per il tuo Chromebook: Ciao a tutti! Questo è Gamer Bro Cinema e oggi ti insegneremo come creare una fantastica immagine del profilo YouTube per il tuo canale YouTube! Questo tipo di immagine del profilo può essere eseguito solo su un Chromebook. Iniziamo
Metti un'immagine per il tuo account: 4 passaggi
Metti un'immagine per il tuo account: mostrerò ad alcune di voi persone che hanno bisogno di aiuto per aggiungere un'immagine come avatar o per il tuo istruttore. Ecco alcune istruzioni passo passo su come farlo. Per favore, sentiti libero di aggiungere commenti e alcuni suggerimenti per questo istruibile. Sotto
Guida alla programmazione interessante per il designer: fai funzionare la tua immagine (parte prima): 16 passaggi
Interessante guida alla programmazione per i designer: fai funzionare la tua immagine (prima parte): corri! Correre! Run! La programmazione non è così difficile. Il punto chiave è trovare il tuo ritmo e farlo uno per uno. Prima di leggere questo capitolo, spero che tu abbia già familiarità con il metodo di disegno delle funzioni di base, o ti vertigini e ti sentirai confuso
Creare modelli piastrellabili per l'immagine di sfondo del sito Web: 8 passaggi
Crea modelli piastrellabili per l'immagine di sfondo del sito Web: ecco un metodo semplice e diretto (credo) per creare immagini che possono essere affiancate senza sembrare troppo "a griglia". Questo tutorial utilizza Inkscape (www.inkscape.org), un editor di grafica vettoriale open source. Immagino che questo metodo possa