Satura rādītājs:

Veidojiet Docker attēlu Raspberry Pi: 7 soļi
Veidojiet Docker attēlu Raspberry Pi: 7 soļi

Video: Veidojiet Docker attēlu Raspberry Pi: 7 soļi

Video: Veidojiet Docker attēlu Raspberry Pi: 7 soļi
Video: Equipment Corner- OctoPrint configuration 2024, Novembris
Anonim
Veidojiet Docker attēlu Raspberry Pi
Veidojiet Docker attēlu Raspberry Pi

Šajā pamācībā ir parādīts, kā izveidot Docker attēlu Raspberry Pi.

1. solis: Kāpēc Docker?

Jūs varat izmantot Raspberry Pi (RPi) daudzām lietām, nelielu tīmekļa serveri, AI palīgu, robotiku utt.

Daudzi projekti, kurus vēlaties izmēģināt, bet sāpju punkti ir šādi:

Laiks veidot

RPi nevēlas apstrādes jaudu, un SD/USB diskdzinis ierobežoja IO ātrumu. Izmantot apt instalēt visu atkarības pakotni ir nepieciešama stunda, un avota izveide prasa vairāk stundu. Īpaši ar AI saistītiem projektiem ir jāgaida vairāk nekā laiks, lai mēģinātu.

Versijas konflikts

Ikviens izmēģina daudzus projektus vienā RPi. Kad esat izmēģinājis projektu un vēlaties pārslēgties uz citu, var rasties kļūda, ko radījusi atkarības bibliotēku versijas pretruna ar iepriekšējo projektu. Dažas bibliotēkas pārstāj attīstīties pirms dažiem gadiem un ir atkarīgas no dažām ļoti vecām bibliotēkām. Turpretī aktīvs projekts bija atkarīgs no jaunākajām bibliotēkām. Abi projekti nevar pastāvēt vienā SD/USB diskdzinī ?.

Attēlu dublēšana

Tā kā daži projekti nevar pastāvēt līdzās, vienkārši iegādājieties vairāk SD/USB diskdziņa, lai katra projekta attēls būtu atkarīgs. Ja nauda nav ierobežota ?. Bet tas palielina failu/attēlu pārvaldības grūtības, dažreiz jums ir jāmaina SD/USB un daudzas reizes jāuzsāk, lai uzzinātu, ko vēlaties.

Grūti dalīties

Kad veidojāt savu projektu un vēlaties kopīgot avotu ar draugiem, jūsu draugi var saņemt atgriezenisko saiti par neizdevušos uzbūvi. Izplatīšanas/bibliotēku versija ir pārāk veca vai pārāk jauna, tiek veidoti parametri un daži triki. Jums ir jāizmanto laiks, lai atrisinātu citu būvniecības problēmas, bet neatbalstītu pašu projektu.

Iepriekš minētie sāpju punkti ir mana pieredze dažu gadu laikā. Docker var palīdzēt lielākajai daļai.

Docker sāk veidot, izvēloties iepriekš izveidotu vecāku attēlu. Piem. debian: jessie-slim sākums no veca stabila Debian vieglā svara sadalījuma; mezgls: 10-buster-slim sākums no Debian vieglā svara sadalījuma ar instalētu Node.js 10. Iepriekš uzbūvētais attēls var ietaupīt daudz laika attēla zibspuldzei, atjauninājumu saņemšanai un atkarīgu bibliotēku instalēšanai. Katru projektu var sākt no dažādas OS versijas, izpildlaika versijas un bibliotēku versijas. Kad esat pabeidzis izstrādāt savu projektu, varat pārvietot Docker attēlu uz docker centru un kopīgot to ar visiem. Jūs varat saglabāt visus projekta datus vienā un tajā pašā SD/USB (datiem vajadzētu regulāri dublēt citus datu nesējus). Lai ietaupītu vietējo krātuvi, varat pat iztīrīt Docker attēlu, kad to nelietojat, jebkurā laikā, kad varat atkal izvilkt no Docker centrmezgla.

2. solis: Docker virs galvas

Dokers pievienoja vienu virtualizācijas slāni, bažas rada pieskaitāmās izmaksas. Es neesmu pārāk daudz pārbaudījis Docker pieskaitāmās izmaksas. Lielākajai daļai Google rezultātu ir ļoti zemas izmaksas, un es atklāju šo dokumentu par dažiem saistītiem pētījumiem:

domino.research.ibm.com/library/cyberdig.n…

3. darbība: instalējiet Docker

Vienkārši palaidiet:

čokurošanās -sSL https://get.docker.com | sh

Atsauce:

www.raspberrypi.org/blog/docker-comes-to-…

docs.docker.com/get-started/

4. darbība. Docker attēla izveide

Lūdzu, atrodiet oficiālo rokasgrāmatu docker attēla veidošanai:

docs.docker.com/get-started/part2/

Man ir 2 projekti, izmantojot Docker, jūs varat atrast Dockerfile kā atsauci:

BanateCAD ir nepieciešams Lua izpildlaiks un dažas papildu Lua bibliotēkas. Tikai Lua 5.1 var būt saderīgs ar visām nepieciešamajām Lua bibliotēkām, taču tas ir 2006. gada produkts. Jaunākais Debian izplatījums, kas var radīt Lua 5.1 panākumus, ir Jessie (versija pirms pašreizējās Debian vecās staļļa). Tāpēc es izveidoju Lua 5.1 vides Docker Image, lai to palaistu

github.com/moononournation/BanateCAD/tree/…

OpenCV ir aktīvi attīstošs projekts, avota kods ir atkarīgs no jaunākajām bibliotēkām un kompilatora. Tāpēc ir ļoti liela iespēja izveidot neveiksmīgu bibliotēku metodes parakstu, kompilatora versiju, atkarības konfliktu … Es gribētu izmantot opencv4nodejs, lai izveidotu vienkāršu lietotni un neprasa jaunākās funkcijas. Tātad, kad es atradu veidu, kā veidot opencv4nodejs panākumus, es gribētu to iesaldēt līdz Docker attēlam un veikt savu faktisko lietojumprogrammu kodēšanu

github.com/moononournation/face-aware-phot…

5. darbība. Izstrādes ātruma un attēla izmēra veidošana

Attīstības būvēšanas ātruma un attēla izmērs
Attīstības būvēšanas ātruma un attēla izmērs
Attīstības būvēšanas ātruma un attēla izmērs
Attīstības būvēšanas ātruma un attēla izmērs

Jūs, iespējams, atklājāt, ka manam seju apzinošajam foto-osd projektam ir divas Dockfile versijas:

github.com/moononournation/face-aware-phot…

Attīstības laikā man patīk pēc iespējas mazāka RUN komanda, un es visdrīzāk mainīšu RUN komandu uz pēdējo soli. Tāpēc katrai būvei attīstības izmaiņām es varu pēc iespējas vairāk izmantot iepriekš uzbūvēto slāni un ietaupīt lielu būvēšanas ātrumu.

Turpretī es visas RUN komandas apvienošu vienā pirms izlaišanas. mazāks slānis var ievērojami samazināt Docker attēla izmēru. Mans seju apzinošais foto-osd projekts, piemēram, var samazināt vairāk nekā 100 MB.

6. darbība: vairāku arku attēli

Vairāku arku attēli
Vairāku arku attēli

Kā minēts iepriekš, RPi nevēlas apstrādes jaudu. Izmantojiet RPi build Docker attēlu, iespējams, nav laba izvēle, it īpaši, ja jūsu vienīgais RPi vada citus projektus.

Izmantojot x86 datoru, varat arī izveidot Docker attēlu, sīkāku informāciju skatiet šeit:

www.docker.com/blog/multi-arch-images/

vienkāršas 2 komandas var paralēli veidot x86 un ARM Docker Image:

docker buildx izveidot -izmantot

docker buildx build-platforma linux/amd64, linux/arm -t moononournation/debian-imagemagick-lua-meshlab: 1.0.1-push.

Multi Arch var izveidot vairāku platformu attēlu ar to pašu Docker attēla tagu, lai jūsu projekts varētu nevainojami darboties dažādās mašīnās. piem.

docker run-tā mēnessurnācija/debian-imagemagick-lua-meshlab: 1.0.1

Neatkarīgi no tā, vai izpildāt iepriekš minēto komandu RPi vai datorā x86, varat iegūt Lua izpildlaika vidi.

7. solis: laimīgu RPi

Tagad jūs varat vieglāk izstrādāt un kopīgot savu RPi projektu!

Ieteicams: