Kazalo:

Zgradite sliko Docker za Raspberry Pi: 7 korakov
Zgradite sliko Docker za Raspberry Pi: 7 korakov

Video: Zgradite sliko Docker za Raspberry Pi: 7 korakov

Video: Zgradite sliko Docker za Raspberry Pi: 7 korakov
Video: Marlin Firmware - VScode PlatformIO Install - Build Basics 2024, November
Anonim
Zgradite sliko Docker za Raspberry Pi
Zgradite sliko Docker za Raspberry Pi

Ta navodila kažejo, kako zgraditi sliko Dockerja za Raspberry Pi.

1. korak: Zakaj Docker?

Raspberry Pi (RPi) lahko uporabite za marsikaj, majhen spletni strežnik, pomočnik AI, robotika … itd.

Veliko projektov, ki jih želite preizkusiti, vendar so boleče točke:

Čas za gradnjo

RPi ni navdušen nad procesorsko močjo, pogon SD/USB pa je omejil hitrost IO. Za uporabo paketa odvisnosti apt install all je potrebna ena ura, za izgradnjo vira pa več ur. Predvsem za projekte, povezane z umetno inteligenco, je treba čakati več kot čas, da poskusite.

Konflikt različice

Vsak poskusi veliko projektov v enem RPi. Ko ste preizkusili projekt in bi radi prešli na drugega, lahko pride do napake pri gradnji, ki je posledica konflikta različice knjižnic odvisnosti s prejšnjim projektom. Nekatere knjižnice se nehajo razvijati pred nekaj leti in so odvisne od nekaterih zelo starih knjižnic. Nasprotno pa je bil aktivni projekt odvisen od najnovejših knjižnic. Oba projekta ne moreta sobivati v istem pogonu SD/USB ?.

Varnostno kopiranje slike

Ker nekateri projekti ne morejo obstajati skupaj, preprosto kupite več pogona SD/USB, da bo vsaka slika projekta odvisna. Če denar ni omejen ?. Toda to povečuje težave pri upravljanju datotek/slik, včasih potrebujete zamenjavo SD/USB in se večkrat zaženete, da ugotovite, kaj želite.

Težko deliti

Ko ste ustvarili svoj projekt in želite vir deliti s prijatelji, bodo vaši prijatelji morda dobili nazaj napako pri gradnji. Različica distribucije/knjižnice prestara ali preveč nova, gradbeni parametri in nekateri triki. Za reševanje drugih težav pri gradnji morate porabiti čas, ne pa podpreti samega projekta.

Zgornje bolečine so moje izkušnje v teh nekaj letih. Docker lahko večinoma pomaga.

Docker začne gradnjo z izbiro vnaprej izdelane nadrejene slike. Npr. debian: jessie-slim začetek iz stare stabilne distribucije lahke teže Debian; vozlišče: 10-buster-tanek začetek iz distribucije lahke teže Debian z nameščenim Node.js 10. Vnaprej pripravljena slika lahko prihrani veliko časa za utrditev slike, posodobitev in namestitev knjižnic, ki so odvisne od nje. Vsak projekt se lahko začne z različno različico operacijskega sistema, različico izvajalnega okolja in različico knjižnice. Ko končate z razvojem lastnega projekta, lahko sliko Dockerja potisnete v dockerjevo vozlišče in jo delite z vsemi. Vse podatke o projektu lahko hranite na istem SD/USB -ju (podatki bi morali rutinsko varnostno kopirati na druge medije). Če želite shraniti lokalni pomnilnik, lahko celo očistite sliko Dockerja, kadar ga ne uporabljate, kadar koli ga lahko znova povlečete iz središča Dockerja.

2. korak: Docker nad glavo

Docker je dodal eno virtualizacijsko plast, stroški so skrb. O stroških Dockerja nisem preveč testiral. Večina rezultatov Googla trdi, da so stroški zelo nizki in ta dokument sem našel o nekaterih sorodnih raziskavah:

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

3. korak: Namestite Docker

Preprosto zaženite:

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

Ref.:

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

docs.docker.com/get-started/

4. korak: Izdelava slike Dockerja

Poiščite uradni priročnik za izdelavo slike dockerja:

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

Imam 2 projekta, ki uporabljajo Docker, Dockerfile lahko najdete kot referenco:

BanateCAD zahteva čas izvajanja Lua in nekaj knjižnic Lua. Samo Lua 5.1 je lahko združljiva z vsemi potrebnimi knjižnicami Lua, vendar je produkt leta 2006. Najnovejša distribucija Debian, ki lahko ustvari uspeh Lua 5.1, je Jessie (različica pred sedanjo staro stabilno Debian). Zato sem zgradil okolje Docker Image Lua 5.1 za njegovo izvajanje

github.com/moononournation/BanateCAD/tree/…

OpenCV je projekt, ki se aktivno razvija, izvorna koda je odvisna od najnovejših knjižnic in prevajalnika. Zato je velika verjetnost, da ne uspe zgraditi, podpis knjižnične metode, različica prevajalnika, konflikt odvisnosti … Rad bi uporabil opencv4nodejs za preprosto aplikacijo in ne zahteva najnovejših funkcij. Ko sem torej našel način za izgradnjo uspeha opencv4nodejs, bi ga rad zamrznil v sliko Dockerja in naredil dejansko kodiranje aplikacije

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

5. korak: Razvoj hitrosti gradnje Vs velikost slike

Razvojna hitrost gradnje Vs Velikost slike
Razvojna hitrost gradnje Vs Velikost slike
Razvojna hitrost gradnje Vs Velikost slike
Razvojna hitrost gradnje Vs Velikost slike

Morda ste ugotovili, da ima moj projekt zavedanja obraza-photo-osd 2 različici Dockfile:

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

Med razvojem imam rad čim manjši ukaz RUN in najverjetneje spremenim ukaz RUN v zadnji korak. Tako lahko pri vsaki gradnji za razvojne spremembe čim bolj izkoristim prejšnjo vgrajeno plast in prihranim veliko hitrost gradnje.

V nasprotju s tem bom pred izdajo združil vse ukaze RUN v enem. manjša plast lahko precej zmanjša velikost slike Docker. Moj projekt, ki se zaveda obraza-photo-osd, na primer lahko zmanjša velikost več kot 100 MB.

6. korak: Slike z več loki

Več ločnih slik
Več ločnih slik

Kot smo že omenili, RPi ne zanima procesorske moči. Uporaba RPi build Docker slike morda ni dobra izbira, še posebej, če vaš edini RPi izvaja druge projekte.

Uporaba računalnika x86 vam lahko pomaga tudi pri izdelavi slike Dockerja. Več podrobnosti najdete tukaj:

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

preprosta 2 ukaza lahko vzporedno zgradita x86 in ARM Docker Image:

docker buildx create --use

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

Multi Arch lahko ustvari podobo na več platformah z isto Docker slikovno oznako, tako da se vaš projekt lahko nemoteno izvaja v različnih strojih. npr.

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

Ne glede na to, da zgornji ukaz zaženete v RPi ali računalniku x86, lahko dobite okolje za izvajanje Lua.

7. korak: Vesel RPi

Zdaj lahko svoj projekt RPi lažje razvijate in delite!

Priporočena: