INHOUDSOPGAWE:
- Stap 1: Waarom Docker?
- Stap 2: Docker -bokoste
- Stap 3: Installeer Docker
- Stap 4: Bou Docker -beeld
- Stap 5: Ontwikkeling Bou spoed teenoor beeldgrootte
- Stap 6: Multi Arch -beelde
- Stap 7: Gelukkige RPi
Video: Bou Docker -beeld vir Raspberry Pi: 7 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
Hierdie instruksies wys hoe u 'n Docker -beeld vir Raspberry Pi kan bou.
Stap 1: Waarom Docker?
U kan Raspberry Pi (RPi) gebruik om baie dinge te doen, klein webbediener, AI -assistent, robotika …
Baie projekte wat u wil probeer, maar die pynpunte is:
Tyd om te bou
RPi is nie lus vir verwerkingskrag nie, en die SD/USB -skyf het die IO -snelheid beperk. Gebruik 'n geskikte installeer -pakket vir alle afhanklikheid benodig 'n uur en die bou van die bron verg meer ure. Veral vir AI -verwante projekte, moet u meer as tyd wag om te probeer.
Weergawekonflik
Almal probeer baie projekte in een RPi. As u 'n projek probeer het en na 'n ander een wil oorskakel, is daar moontlik 'n boufout wat veroorsaak word deur die weergawe van afhanklikheidsbiblioteke met die vorige projek. Sommige biblioteke het 'n paar jaar gelede opgehou ontwikkel en is afhanklik van 'n paar ou biblioteke. Daarteenoor was die aktiewe projek afhanklik van die nuutste biblioteke. Beide projekte kan nie op dieselfde SD/USB-skyf bestaan nie?
Beeldrugsteun
Aangesien sommige projekte nie saam kan bestaan nie, koop eenvoudig meer SD/USB-skyf om elke projekbeeld afhanklik te hou. As geld nie beperk is nie ?. Maar dit vergroot die probleme met lêer-/beeldbestuur, soms moet u SD/USB ruil en baie keer opstart om uit te vind wat u wil hê.
Moeilik om te deel
As u u projek opgestel het en die bron met vriende wil deel, kan u vriende die terugvoer van die bou misluk. Verspreiding/biblioteke weergawe te oud of te nuut, bou parameters en 'n paar truuks. U moet die tyd gebruik om ander probleme op te los, maar om nie die projek self te ondersteun nie.
Bogenoemde pynpunte is my ervaring in hierdie paar jaar. Docker kan die meeste daarvan help.
Docker begin bou deur 'n voorafgeboude ouerbeeld te kies. Bv. debian: jessie-slim begin van 'n ou stabiele Debian liggewigverdeling; node: 10-buster-slim begin vanaf die ligte gewigverdeling van Debian met Node.js 10 geïnstalleer. Die voorafgeboude beeld kan baie tyd bespaar om die beeld te flits, opdaterings te kry en afhanklike biblioteke te installeer. Elke projek kan begin met verskillende bedryfstelselweergawes, runtime -weergawes en biblioteke. As u klaar is met die ontwikkeling van u eie projek, kan u die Docker -beeld na die docker -hub stoot en met almal deel. U kan alle projekdata op dieselfde SD/USB hou (data moet gereeld rugsteun na ander media). Om die plaaslike berging te stoor, kan u selfs die Docker -beeld skoonmaak as u dit nie gebruik nie, en u kan dit altyd weer uit die Docker -hub trek.
Stap 2: Docker -bokoste
Docker het een virtualiseringslaag bygevoeg, dit is 'n bron van kommer. Ek het nie te veel getoets oor die Docker -bokoste nie. Die meeste gegoogle resultate beweer 'n baie lae koste en ek het hierdie dokument gevind oor 'n paar verwante navorsing:
domino.research.ibm.com/library/cyberdig.n…
Stap 3: Installeer Docker
Hardloop eenvoudig:
curl -sSL https://get.docker.com | sh
Verw.:
www.raspberrypi.org/blog/docker-comes-to-…
docs.docker.com/get-started/
Stap 4: Bou Docker -beeld
Vind die amptelike gids vir die bou van docker -beeld:
docs.docker.com/get-started/part2/
Ek het 2 projekte wat Docker gebruik, u kan die Dockerfile as 'n verwysing vind:
BanateCAD benodig Lua -runtime en 'n paar Lua -biblioteke. Slegs Lua 5.1 kan met alle vereiste Lua -biblioteke versoenbaar wees, maar dit is die produk van 2006. Die nuutste Debian -verspreiding wat Lua 5.1 -sukses kan bou, is Jessie (die weergawe voor die huidige Debian -ou stal). Ek het dus 'n Lua 5.1 -omgewing Docker Image gebou om dit te bestuur
github.com/moononournation/BanateCAD/tree/…
OpenCV is 'n aktief ontwikkelende projek; die bronkode hang af van die nuutste biblioteke en samesteller. Dit is dus 'n baie groot kans om 'n mislukte handtekening van biblioteke te bou, samestellerweergawe, afhanklikheidskonflik … Ek wil opencv4nodejs gebruik om 'n eenvoudige app te maak en het nie die nuutste funksies nodig nie. Dus, toe ek 'n manier vind om die sukses van opencv4nodejs te bou, wil ek dit in 'n Docker -beeld vries en my werklike programkodering doen
github.com/moononournation/face-aware-phot…
Stap 5: Ontwikkeling Bou spoed teenoor beeldgrootte
U het moontlik gevind dat my gesigbewuste foto-osd-projek 2 weergawes van Dockfile het:
github.com/moononournation/face-aware-phot…
Terwyl ek ontwikkel is, hou ek van die gesplete RUN -opdrag so klein as moontlik, en ek stel die RUN -opdrag waarskynlik in die laaste stap. Dus, vir elke konstruksie vir ontwikkelingsverandering, kan ek die vorige gebou laag soveel as moontlik gebruik en baie bou spoed bespaar.
Daarteenoor kombineer ek alle RUN -opdragte in een voor vrylating. 'n kleiner laag kan die grootte van die Docker -beeld baie verminder. My gesig-bewuste-foto-osd-projek kan as voorbeeld meer as 100 MB verminder.
Stap 6: Multi Arch -beelde
Soos voorheen genoem, is RPi nie lus vir verwerkingskrag nie. Die gebruik van RPi build Docker -beeld is miskien nie 'n goeie keuse nie, veral as u enigste RPi ander projekte uitvoer.
Gebruik 'n x86 -rekenaar en kan u ook help om die Docker -beeld te bou; vind meer besonderhede hier:
www.docker.com/blog/multi-arch-images/
eenvoudige 2 opdragte kan x86 en ARM Docker Image parallel bou:
docker buildx skep --gebruik
docker buildx build-platform linux/amd64, linux/arm -t moononournation/debian-imagemagick-lua-meshlab: 1.0.1 --push.
Multi Arch kan 'n multi -platformbeeld bou met dieselfde Docker -afbeeldingsetiket, sodat u projek naatloos in verskillende masjiene kan werk. bv.
docker run -it moononournation/debian-imagemagick-lua-meshlab: 1.0.1
Maak nie saak of u die bogenoemde opdrag op RPi of u x86 -rekenaar uitvoer nie, u kan 'n Lua -runtime -omgewing kry.
Stap 7: Gelukkige RPi
U kan nou u RPi -projek makliker ontwikkel en deel!
Aanbeveel:
Bou GNU/Linux -verspreiding vir Raspberry Pi met behulp van die Yocto -projek: 6 stappe
Bou van GNU/Linux -verspreiding vir Raspberry Pi Met behulp van die Yocto -projek: Raspberry Pi is waarskynlik die gewildste laekoste -enkelbordrekenaar op die mark. Dit word dikwels gebruik vir Internet of Things en ander ingebedde projekte. Verskeie GNU/Linux -verspreidings bied uitstekende ondersteuning vir Raspberry Pi en daar is selfs Mi
Bou Kodi / OSMC Infrarooi Ontvanger en Herstel Hoed vir Raspberry Pi: 5 stappe (met foto's)
Bou Kodi / OSMC Infrarooi Ontvanger en Herstel Hoed vir Raspberry Pi: Bou 'n Kodi / OSMC IR Ontvanger en Herstel hoed vir die Raspberry Pi 3 Vanuit 'n kamer wil ek: Beheer Kodi / OSMC wat op 'n Framboos Pi werk met 'n afstandsbediening Kyk of die Raspberry Pi ook aangeskakel is, ek wil graag hê dat my gesin
Hoe om 'n grijperarm met 'n robot -beheerde bou te bou via Nrf24l01 Arduino: 3 stappe (met foto's)
Hoe om 'n gryparm -robot -beheerde robot gebou te word via Nrf24l01 Arduino: die instruksie " Hoe om 'n gryparm te volg, word 'n robot gestuur deur Nrf24l01 Arduino " sal verduidelik hoe u 'n drie -vryheidsgreeparm kan bou wat geïnstalleer is op 'n wiel met wiel aangedryf deur 'n L298N -module met dubbele motor met behulp van MEG
Bou 'n Raspberry Pi -rekenaar vir minder as $ 140: 17 stappe
Bou 'n Raspberry Pi-rekenaar vir minder as $ 140: opdatering van Maart 2017: Skep 'n Raspberry Pi-gebaseerde rekenaar met aanvaarbare prestasie teen 'n lae prys vir gebruik in hoërskoolstudente. Die meeste mense is bekend met Windows- of MAC-bedryfstelsels. Linux is 'n ander bedryfstelsel. Een doel van hierdie opdragbare
Hoe om 'n kitaar luidsprekerkas te bou of twee vir u stereo te bou: 17 stappe (met foto's)
Hoe om 'n kitaar -luidsprekerkas of twee vir u stereo te bou: ek wou hê dat 'n nuwe kitaarspreker saam met die buisversterker wat ek bou, gaan. Die luidspreker bly in my winkel, sodat dit nie te spesiaal hoef te wees nie. Tolex -bedekking kan te maklik beskadig word, so ek het die buitekant net swart gespuit na 'n ligte sand