Turinys:
- 1 žingsnis: Kodėl „Docker“?
- 2 žingsnis: „Docker“virš galvos
- 3 veiksmas: įdiekite „Docker“
- 4 žingsnis: „Docker“vaizdo kūrimas
- 5 žingsnis: kūrimas Sukurkite „Speed Vs“vaizdo dydį
- 6 žingsnis: kelių arkų vaizdai
- 7 žingsnis: laimingas RPi
Video: Sukurkite „Docker“vaizdą „Raspberry Pi“: 7 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Šiose instrukcijose parodyta, kaip sukurti „Docker“vaizdą „Raspberry Pi“.
1 žingsnis: Kodėl „Docker“?
Galite naudoti „Raspberry Pi“(RPi) daug ką, mažą žiniatinklio serverį, AI asistentą, robotiką ir kt.
Norite išbandyti daugybę projektų, tačiau skausmingi dalykai yra šie:
Laikas kurti
„RPi“nenori apdorojimo galios, o SD/USB įrenginys apribojo IO greitį. Naudoti apt install all addient paketą reikia valandos, o šaltinio kūrimui reikia daugiau valandų. Ypač su AI susijusiems projektams laikas laukti daugiau nei laikas išbandyti.
Versijos konfliktas
Visi išbando daugybę projektų viename RPi. Išbandę projektą ir norėtumėte pereiti prie kito, gali būti, kad kūrimo klaida įvyko dėl priklausomybės bibliotekų versijos konflikto su ankstesniu projektu. Kai kurios bibliotekos nustoja vystytis prieš keletą metų ir priklauso nuo labai senų bibliotekų. Priešingai, aktyvus projektas priklausė nuo naujausių bibliotekų. Abu projektai negali egzistuoti kartu tame pačiame SD/USB įrenginyje ?.
Vaizdo atsarginė kopija
Kadangi kai kurie projektai negali egzistuoti kartu, tiesiog nusipirkite daugiau SD/USB įrenginio, kad kiekvieno projekto vaizdas būtų priklausomas. Jei pinigai neribojami ?. Tačiau tai padidina failų/vaizdų valdymo sunkumus, kartais jums reikia pakeisti SD/USB ir daug kartų paleisti, kad sužinotumėte, ko norite.
Sunku dalintis
Kai sukūrėte savo projektą ir norėtumėte pasidalyti šaltiniu su draugais, jūsų draugai gali gauti grįžtamąjį pranešimą apie kūrimą. Platinimo/bibliotekų versija per sena arba per nauja, kuriami parametrai ir keletas gudrybių. Jums reikia išnaudoti laiką, kad išspręstumėte kitų kūrimo problemas, bet nepalaikytumėte paties projekto.
Pirmiau minėti skausmo taškai yra mano patirtis per šiuos kelerius metus. „Docker“gali padėti daugumai.
„Docker“pradeda kurti pasirinkdami iš anksto sukurtą pirminį vaizdą. Pvz. debian: jessie-slim pradėti nuo seno stabilaus „Debian“lengvo svorio paskirstymo; mazgas: 10-buster-slim pradėti nuo „Debian“lengvo svorio paskirstymo, kai įdiegta „Node.js 10“. Iš anksto sukurtas vaizdas gali sutaupyti daug laiko vaizdui įjungti, atnaujinti ir įdiegti priklausomas bibliotekas. Kiekvienas projektas gali prasidėti nuo skirtingos OS versijos, vykdymo laiko ir bibliotekos versijos. Kai baigsite kurti savo projektą, galite perkelti „Docker“vaizdą į „Docker“centrą ir bendrinti jį visiems. Visus projekto duomenis galite laikyti tame pačiame SD/USB (duomenys turėtų būti atsargiai kopijuojami į kitą laikmeną). Norėdami sutaupyti vietos saugyklos, netgi galite išvalyti „Docker“vaizdą, kai jo nenaudojate, bet kuriuo metu, kai galite vėl ištraukti iš „Docker“koncentratoriaus.
2 žingsnis: „Docker“virš galvos
„Docker“pridėjo vieną virtualizavimo sluoksnį, o pridėtinės išlaidos kelia susirūpinimą. Aš per daug nebandžiau apie „Docker“pridėtines išlaidas. Dauguma „Google“rezultatų teigia, kad pridėtinės išlaidos yra labai mažos, ir radau šį dokumentą apie kai kuriuos susijusius tyrimus:
domino.research.ibm.com/library/cyberdig.n…
3 veiksmas: įdiekite „Docker“
Tiesiog paleiskite:
curl -sSL https://get.docker.com | sh
Nuoroda:
www.raspberrypi.org/blog/docker-comes-to-…
docs.docker.com/get-started/
4 žingsnis: „Docker“vaizdo kūrimas
Čia rasite oficialų doko įvaizdžio kūrimo vadovą:
docs.docker.com/get-started/part2/
Turiu 2 projektus, kuriuose naudojama „Docker“, „Dockerfile“galite rasti kaip nuorodą:
„BanateCAD“reikalauja „Lua“vykdymo laiko ir kai kurių papildomų „Lua“bibliotekų. Tik „Lua 5.1“gali būti suderinama su visomis reikalingomis „Lua“bibliotekomis, tačiau tai yra 2006 m. Produktas. Naujausias „Debian“platinimas, galintis sukurti „Lua 5.1“sėkmę, yra „Jessie“(versija prieš dabartinį „Debian“senąjį stabilųjį). Taigi aš sukūriau „Lua 5.1“aplinkos „Docker Image“, kad ją paleisčiau
github.com/moononournation/BanateCAD/tree/…
„OpenCV“yra aktyviai besivystantis projektas, kurio šaltinis priklauso nuo naujausių bibliotekų ir kompiliatoriaus. Taigi labai didelė tikimybė sukurti nesėkmingą bibliotekų metodo parašą, kompiliatoriaus versiją, priklausomybės konfliktą … Norėčiau naudoti „opencv4nodejs“kurdamas paprastą programą ir nereikalaujantis naujausių funkcijų. Taigi, kai radau būdą, kaip sukurti „opencv4nodejs“sėkmę, norėčiau jį užšaldyti iki „Docker Image“ir atlikti savo faktinį programų kodavimą
github.com/moononournation/face-aware-phot…
5 žingsnis: kūrimas Sukurkite „Speed Vs“vaizdo dydį
Galite pastebėti, kad mano veidą išmanantis foto-osd projektas turi 2 „Dockfile“versijas:
github.com/moononournation/face-aware-phot…
Vystydamasis, man patinka kuo mažesnė „RUN“komanda ir pasirūpinu, kad RUN komanda būtų pakeista į paskutinį veiksmą. Taigi kiekvienam kūrimui, kad galėčiau pakeisti plėtrą, galiu kiek įmanoma panaudoti anksčiau sukurtą sluoksnį ir sutaupyti daug kūrimo greičio.
Priešingai, prieš paleisdamas visas RUN komandas sujungsiu į vieną. mažesnis sluoksnis gali žymiai sumažinti „Docker“vaizdo dydį. Mano veidą išmanantis foto-osd projektas, kaip pavyzdys, gali sumažinti daugiau nei 100 MB.
6 žingsnis: kelių arkų vaizdai
Kaip minėta anksčiau, RPi nenori apdorojimo galios. Naudoti „RPi build Docker“vaizdą gali būti netinkamas pasirinkimas, ypač kai jūsų vienintelis RPi vykdo kitus projektus.
Naudodami „x86“kompiuterį taip pat galite sukurti „Docker“vaizdą, daugiau informacijos rasite čia:
www.docker.com/blog/multi-arch-images/
paprastos 2 komandos gali sukurti x86 ir ARM Docker Image lygiagrečiai:
docker buildx create -use
docker buildx build-platforma linux/amd64, linux/arm -t moononournation/debian-imagemagick-lua-meshlab: 1.0.1 --push.
„Multi Arch“gali sukurti kelių platformų vaizdą su ta pačia „Docker“vaizdo žyma, todėl jūsų projektas gali sklandžiai veikti skirtingose mašinose. pvz.
„Docker Run“-mėnulio degimas/debian-imagemagick-lua-meshlab: 1.0.1
Nesvarbu, ar vykdote aukščiau nurodytą komandą RPi ar savo x86 kompiuteryje, galite gauti „Lua“vykdymo aplinkos aplinką.
7 žingsnis: laimingas RPi
Dabar galite lengviau kurti ir dalintis savo RPi projektu!
Rekomenduojamas:
Įdomios programavimo gairės dizaineriui-paleisti vaizdą (antroji dalis): 8 žingsniai
Įdomios programavimo gairės dizaineriui-paleiskite savo paveikslą (antroji dalis): matematika daugeliui iš jūsų atrodo nenaudinga. Mūsų kasdieniame gyvenime dažniausiai naudojamas tiesiog sudėti, atimti, padauginti ir padalyti. Tačiau visai kas kita, jei galite kurti naudodami programą. Kuo daugiau žinosite, tuo nuostabesnį rezultatą gausite
Paverskite 2D vaizdą į 3D modelį: 7 žingsniai (su paveikslėliais)
2D vaizdą paversti 3D modeliu: ar kada nors norėjote nufotografuoti 2D vaizdą ir paversti jį 3D modeliu? Ši pamoka parodys, kaip tai padaryti naudojant nemokamą scenarijų ir „Fusion 360“. Ko jums reikia „Fusion 360“(„Mac“/ „Windows“) Ką darysite Atsisiųskite ir įdiekite „Fusion 360“. Spustelėkite čia, jei norite nemokamai užsiregistruoti
Paverskite vaizdą į kaiščio strypo skulptūrą: 7 žingsniai (su paveikslėliais)
Paverskite vaizdą kaiščio strypo skulptūra: Šiame projekte aš pakeičiau oro baliono vaizdą į kaiščio strypo skulptūrą. Galutinė struktūra yra nuotraukoje saugomos skaitmeninės informacijos pavertimas fiziniu 3D objektu. Aš sukūriau skulptūrą, kad padėtų įsivaizduoti, kaip įsivaizduojama
Sukurkite slinkties vaizdą naudodami „Swift“: 9 žingsniai
Sukurkite slinkties vaizdą naudodami „Swift“: Prieš kelis mėnesius aš nežinojau, kad egzistuoja „swift“ir „Xcode“. Šiandien galėjau sukurti nedidelę norimos sukurti programos dalį. Galėjau sukurti kažką įdomaus, kuriuo norėčiau pasidalinti su jumis. Šioje pamokoje aš imsiuosi
Kaip paleisti vaizdą: 6 žingsniai
Kaip paleisti fotoaparatą: Sveiki, mano vardas yra Danielis Kliegelis, aš esu puikus operatorius, kuris yra susipažinęs su fermentacijos procesu ir gali lengvai paaiškinti ir išmokyti ką nors paleisti nejudantį automobilį. Tai yra esminė fermentacijos proceso dalis gaminant etanolį. Aš einu