Satura rādītājs:
- 1. solis: Kāpēc Docker?
- 2. solis: Docker virs galvas
- 3. darbība: instalējiet Docker
- 4. darbība. Docker attēla izveide
- 5. darbība. Izstrādes ātruma un attēla izmēra veidošana
- 6. darbība: vairāku arku attēli
- 7. solis: laimīgu RPi
Video: Veidojiet Docker attēlu Raspberry Pi: 7 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:52
Š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
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
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:
ESP32-CAM Veidojiet savu robotu automašīnu ar tiešraides video straumēšanu: 4 soļi
ESP32-CAM Veidojiet savu robotu automašīnu ar tiešraides video straumēšanu: Ideja ir padarīt šeit aprakstīto robotu automašīnu pēc iespējas lētāku. Tāpēc es ceru sasniegt lielu mērķa grupu ar saviem detalizētajiem norādījumiem un izvēlētajiem komponentiem lētam modelim. Es vēlos iepazīstināt jūs ar savu ideju par robotu automašīnu
Veidojiet varavīksnes interaktīvo tiltu, izmantojot Minecraft Raspberry Pi Edition: 11 soļi
Veidojiet varavīksnes interaktīvo tiltu, izmantojot Minecraft Raspberry Pi Edition: Vakar es redzēju savu 8 gadus veco brāļadēlu, kurš spēlēja Minecraft ar Raspberry Pi, kuru es viņam dāvāju iepriekš, tad man radās ideja, kas izmanto kodu, lai izveidotu pielāgotu un aizraujošu Minecraft- pi LED bloku projekts. Minecraft Pi ir lielisks veids, kā sākt darbu, izmantojot
Veidojiet Raspberry Pi SUPER meteostaciju: 8 soļi (ar attēliem)
Izveidojiet Raspberry Pi SUPER meteostaciju: Atzīsimies, mēs, cilvēki, daudz runājam par laika apstākļiem ⛅️. Vidēji cilvēks par laika apstākļiem runā četras reizes dienā, vidēji 8 minūtes un 21 sekundi. Dariet matemātiku, un tas kopā veido 10 jūsu dzīves mēnešus, ko pavadīsit, vaicājot
Veidojiet Kodi / OSMC infrasarkano uztvērēju un atiestatiet cepuri Raspberry Pi: 5 soļi (ar attēliem)
Izveidojiet Kodi / OSMC infrasarkano uztvērēju un atiestatiet cepuri Raspberry Pi: izveidojiet Kodi / OSMC IR uztvērēju un atiestatiet cepuri Raspberry Pi 3 No visas telpas es vēlētos: Kontrolēt Kodi / OSMC, kas darbojas ar Raspberry Pi ar tālvadības pulti Pārbaudiet, vai Raspberry Pi ir ieslēgts. Es arī vēlētos, lai mana ģimene
Veidojiet videoklipus ar laika intervālu, izmantojot Raspberry Pi (11 koda rindas): 12 soļi (ar attēliem)
Veidojiet videoklipus ar laika intervālu, izmantojot Raspberry Pi (11 koda rindiņas): Nesen pirmo reizi savā galda podiņā iestādīju dažas sēklas. Man bija patiess satraukums vērot, kā viņi aug, bet, kā mēs visi zinām, tas ir lēns process. Neredzot izaugsmi, es biju patiesi vīlies, bet pēkšņi manī pamodās elektronikas hobijs