Turinys:

Sukurkite „Docker“vaizdą „Raspberry Pi“: 7 žingsniai
Sukurkite „Docker“vaizdą „Raspberry Pi“: 7 žingsniai

Video: Sukurkite „Docker“vaizdą „Raspberry Pi“: 7 žingsniai

Video: Sukurkite „Docker“vaizdą „Raspberry Pi“: 7 žingsniai
Video: «Развлечение с музыкой и программированием», Коннор Харрис и Стивен Крюсон 2024, Lapkritis
Anonim
Sukurkite „Raspberry Pi“„Docker“vaizdą
Sukurkite „Raspberry Pi“„Docker“vaizdą

Š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į

„Development Build Speed Vs“vaizdo dydis
„Development Build Speed Vs“vaizdo dydis
„Development Build Speed Vs“vaizdo dydis
„Development Build Speed Vs“vaizdo dydis

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

Kelių arkų vaizdai
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: