Përmbajtje:

Ndërtoni imazhin Docker për Raspberry Pi: 7 hapa
Ndërtoni imazhin Docker për Raspberry Pi: 7 hapa

Video: Ndërtoni imazhin Docker për Raspberry Pi: 7 hapa

Video: Ndërtoni imazhin Docker për Raspberry Pi: 7 hapa
Video: Equipment Corner- OctoPrint configuration 2024, Nëntor
Anonim
Ndërtoni imazhin Docker për Raspberry Pi
Ndërtoni imazhin Docker për Raspberry Pi

Ky udhëzues tregon se si të krijoni një Docker Image për Raspberry Pi.

Hapi 1: Pse Docker?

Ju mund të përdorni Raspberry Pi (RPi) për shumë gjëra, serverë të vegjël në internet, asistent AI, Robotikë … etj.

Shumë projekte që dëshironi të provoni, por pikat e dhimbjes janë:

Koha për të ndërtuar

RPi nuk është i interesuar për fuqinë përpunuese dhe disku SD/USB kufizoi shpejtësinë e IO. Përdorni apt install all paketën e varësisë kërkon një orë dhe ndërtimi i burimit kërkon më shumë orë. Sidomos për projektet e lidhura me AI, koha për të pritur më shumë se koha për të provuar.

Konflikti i Versionit

Të gjithë provojnë shumë projekte në një RPi. Kur keni provuar një projekt dhe dëshironi të kaloni në një tjetër, mund të gjeni disa dështime të ndërtimit të shkaktuara nga konflikti i versionit të bibliotekave të varësisë me projektin e mëparshëm. Disa biblioteka ndalojnë zhvillimin e tyre disa vjet më parë dhe varen nga disa biblioteka shumë të vjetra. Në të kundërt, projekti aktiv varej nga bibliotekat e fundit. Të dy projektet nuk mund të bashkëjetojnë në të njëjtën makinë SD/USB ?.

Rezervimi i imazhit

Meqenëse disa projekte nuk mund të bashkëjetojnë, thjesht blini më shumë disqe SD/USB për të mbajtur të varur çdo imazh të projektit është një mënyrë. Nëse paratë nuk janë të kufizuara ?. Por rrit vështirësitë e menaxhimit të skedarëve/imazheve, ndonjëherë ju keni nevojë të ndërroni SD/USB dhe të nisni shumë herë për të gjetur atë që dëshironi.

Vështirë për t'u ndarë

Kur keni ndërtuar projektin tuaj dhe dëshironi të ndani burimin me miqtë, miqtë tuaj mund të marrin informacionin e dështuar të ndërtimit. Versioni i shpërndarjes/bibliotekave shumë i vjetër ose shumë i ri, duke ndërtuar parametra dhe disa truke. Ju duhet të përdorni kohën për të zgjidhur problemet e të tjerëve, por të mos e mbështesni vetë projektin.

Pikat e mësipërme të dhimbjes janë përvoja ime në këto pak vite. Docker mund të ndihmojë shumicën e tij.

Docker filloni të ndërtoni nga zgjedhja e një imazhi të paravendosur të prindit. P.sh. debian: fillimi jessie-i hollë nga një shpërndarje e vjetër e qëndrueshme e peshës së lehtë Debian; nyja: Fillimi 10-buster-hollë nga shpërndarja e peshës së lehtë Debian me Node.js 10 të instaluar. Imazhi i paravendosur mund të kursejë shumë kohë për të ndezur imazhin, për të marrë përditësime dhe instaluar biblioteka të varura. Çdo projekt mund të fillojë nga versioni i ndryshëm i OS, versioni i ekzekutimit dhe versioni i bibliotekave. Kur të keni mbaruar së zhvilluari projektin tuaj, mund ta shtyni imazhin Docker në qendrën e dockerit dhe ta ndani me të gjithë. Ju mund t'i mbani të gjitha të dhënat e projektit në të njëjtën SD/USB (të dhënat duhet të bëjnë kopje rezervë rutinë në media të tjera). Për të ruajtur ruajtjen lokale, madje mund të pastroni imazhin Docker kur nuk përdoret, në çdo kohë që mund të tërhiqeni përsëri nga qendra Docker.

Hapi 2: Docker Overhead

Docker shtoi një shtresë të virtualizuar, lartësia është një shqetësim. Unë nuk kam provuar shumë për lartin Docker. Rezultati më i googled pretendon shpenzime shumë të ulëta dhe gjeta këtë dokument në lidhje me disa kërkime të lidhura:

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

Hapi 3: Instaloni Docker

Thjesht drejtojeni:

curl -sSL https://get.docker.com | sh

Ref.:

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

docs.docker.com/get-started/

Hapi 4: Ndërtimi i imazhit të Docker -it

Ju lutemi gjeni udhëzuesin zyrtar për ndërtimin e imazhit të docker:

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

Unë kam 2 projekte duke përdorur Docker, ju mund të gjeni Dockerfile si një referencë:

BanateCAD kërkon kohën e funksionimit Lua dhe disa biblioteka shtesë Lua. Vetëm Lua 5.1 mund të jetë në përputhje me të gjitha bibliotekat e kërkuara Lua, por është produkt i vitit 2006. Shpërndarja më e fundit Debian që mund të krijojë suksesin e Lua 5.1 është Jessie (Versioni para stabilit të vjetër Debian). Kështu që unë ndërtova një mjedis Lua 5.1 Docker Image për ta drejtuar atë

github.com/moononournation/BanateCAD/tree/…

OpenCV është një projekt në zhvillim aktiv, kodi burimor varet nga bibliotekat dhe përpiluesi më i fundit. Pra, ka shanse shumë të larta për të ndërtuar dështimin, nënshkrimin e metodës së bibliotekave, versionin e përpiluesit, konfliktin e varësisë … Unë do të doja të përdor opencv4nodejs për të bërë një aplikacion të thjeshtë dhe nuk kërkoj veçori të fundit. Kështu që kur gjeta një mënyrë për të ndërtuar suksesin e opencv4nodejs, do të doja ta ngrija atë në një Docker Image dhe të bëja kodimin e aplikacionit tim aktual

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

Hapi 5: Shpejtësia e Zhvillimit të Ndërtimit Vs Madhësia e Imazhit

Shpejtësia e Zhvillimit të Ndërtimit Vs Madhësia e Imazhit
Shpejtësia e Zhvillimit të Ndërtimit Vs Madhësia e Imazhit
Shpejtësia e Zhvillimit të Ndërtimit Vs Madhësia e Imazhit
Shpejtësia e Zhvillimit të Ndërtimit Vs Madhësia e Imazhit

Ju mund të gjeni që projekti im i vetëdijshëm për foton-osd ka 2 versione të Dockfile:

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

Ndërsa zhvillohem, më pëlqen komanda e ndarë RUN sa më e vogël dhe të organizoj ka shumë të ngjarë të ndryshoj komandën RUN në hapin e fundit. Pra, për çdo ndërtim për ndryshimin e zhvillimit, unë mund të përdor shtresën e ndërtuar më parë sa më shumë që të jetë e mundur dhe të kursej shumë shpejtësi ndërtimi.

Në të kundërt, unë do të kombinoj të gjitha komandat RUN në një para lëshimit. shtresa më e vogël mund të zvogëlojë shumë madhësinë e Docker Image. Projekti im i fytyrës-i vetëdijshëm-foto-osd si shembull mund të zvogëlojë më shumë se 100 MB në madhësi.

Hapi 6: Imazhe me shumë harqe

Imazhe me shumë harqe
Imazhe me shumë harqe

Siç u përmend më parë, RPi nuk është i etur për fuqinë përpunuese. Përdorni RPi build Docker image mund të mos jetë një zgjedhje e mirë, veçanërisht kur RPi juaj i vetëm po ekzekuton projekte të tjera.

Përdorni një kompjuter x86 gjithashtu mund t'ju ndihmojë të ndërtoni Docker Image, ju lutemi gjeni më shumë detaje këtu:

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

2 komanda të thjeshta mund të ndërtojnë paralelisht x86 dhe ARM Docker Image:

docker buildx create -use

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

Multi Arch mund të ndërtojë imazh me shumë platforma me të njëjtën etiketë të imazhit Docker, kështu që projekti juaj mund të funksionojë në makina të ndryshme pa probleme. p.sh.

docker run -it moononournation/debian-imagemagick-lua-meshlab: 1.0.1

Pavarësisht se e ekzekutoni komandën e mësipërme në RPi ose kompjuterin tuaj x86, mund të merrni një mjedis të funksionimit Lua.

Hapi 7: Gëzuar RPi

Tani mund të zhvilloni dhe ndani më lehtë projektin tuaj RPi!

Recommended: