Sadržaj:

Izradite Docker sliku za Raspberry Pi: 7 koraka
Izradite Docker sliku za Raspberry Pi: 7 koraka

Video: Izradite Docker sliku za Raspberry Pi: 7 koraka

Video: Izradite Docker sliku za Raspberry Pi: 7 koraka
Video: Создание чат ботов для Telegram на Python, с помощью библиотек 2024, Studeni
Anonim
Napravite Docker sliku za Raspberry Pi
Napravite Docker sliku za Raspberry Pi

Ove upute pokazuju kako izgraditi Docker sliku za Raspberry Pi.

Korak 1: Zašto Docker?

Možete koristiti Raspberry Pi (RPi) za mnoge stvari, maleni web poslužitelj, AI pomoćnik, robotika … itd.

Mnogi projekti koje želite isprobati, ali bolne točke su:

Vrijeme je za izgradnju

RPi ne voli procesorsku snagu, a SD/USB pogon ograničio je IO brzinu. Koristi apt install all paket ovisnosti zahtijeva sat vremena, a za izgradnju izvora potrebno je više sati. Posebno za projekte vezane uz AI, vrijeme je za čekanje više od vremena za isprobavanje.

Sukob verzija

Svatko isprobava mnogo projekata u jednom RPi. Kada ste isprobali projekt i htjeli biste se prebaciti na drugi, možda ćete otkriti grešku u izgradnji uzrokovanu sukobom verzije knjižnica ovisnosti s prethodnim projektom. Neke se knjižnice prestaju razvijati prije nekoliko godina i ovise o nekim vrlo starim knjižnicama. Nasuprot tome, aktivni projekt ovisio je o najnovijim knjižnicama. Oba projekta ne mogu koegzistirati u istom SD/USB pogonu ?.

Sigurnosno kopiranje slike

Budući da neki projekti ne mogu postojati zajedno, jednostavno kupite više SD/USB pogona kako bi slika svakog projekta ostala ovisna. Ako novac nije ograničen ?. No to povećava poteškoće u upravljanju datotekama/slikama, ponekad vam je potrebna zamjena SD/USB -a i podizanje sustava mnogo puta kako biste saznali što želite.

Teško podijeliti

Kad ste izgradili svoj projekt i htjeli podijeliti izvor s prijateljima, vaši prijatelji mogu dobiti povratnu datoteku pri izgradnji. Verzija distribucije/knjižnice prestara ili previše nova, parametri izgradnje i neki trikovi. Morate iskoristiti vrijeme za rješavanje drugih problema pri izgradnji, ali ne i za podršku samom projektu.

Gore navedene točke boli moje su iskustvo u ovih nekoliko godina. Docker većinom može pomoći.

Docker počinje gradnju odabirom unaprijed izgrađene roditeljske slike. Npr. debian: jessie-slim početak od stare stabilne Debian distribucije male težine; čvor: 10-buster-slim start iz Debian distribucije male težine s instaliranim Node.js 10. Unaprijed izgrađena slika može uštedjeti mnogo vremena za fleširanje slike, ažuriranje i instaliranje knjižnica ovisnih o njoj. Svaki projekt može započeti s različitim verzijama OS -a, verzijom izvođenja i bibliotekom. Kad završite s razvijanjem vlastitog projekta, možete sliku Dockera gurnuti u docker čvorište i podijeliti sa svima. Sve projektne podatke možete čuvati na istom SD/USB -u (podaci bi trebali rutinski sigurnosno kopirati na druge medije). Za spremanje lokalne pohrane, čak možete i očistiti sliku Dockera kad se ne koristi, kad god možete ponovno povući iz Docker čvorišta.

Korak 2: Docker iznad glave

Docker je dodao jedan sloj za virtualizaciju. Nisam previše testirao oko Dockera. Većina rezultata na Google -u tvrdi da imaju vrlo niske troškove i pronašao sam ovaj dokument o nekim povezanim istraživanjima:

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

Korak 3: Instalirajte Docker

Jednostavno pokrenite:

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

Ref.:

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

docs.docker.com/get-started/

Korak 4: Izgradnja Docker slike

Pronađite službeni vodič o izgradnji slike dokera:

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

Imam 2 projekta koji koriste Docker, možda ćete pronaći Dockerfile kao referencu:

BanateCAD zahtijeva vrijeme izvođenja Lua i neke Lua knjižnice. Samo Lua 5.1 može biti kompatibilan sa svim potrebnim Lua knjižnicama, ali to je proizvod iz 2006. Najnovija Debian distribucija koja može izgraditi uspjeh Lua 5.1 je Jessie (verzija prije trenutne stare Debian stabilne). Stoga sam izgradio Docker Image okruženje Lua 5.1 za njegovo pokretanje

github.com/moononournation/BanateCAD/tree/…

OpenCV je projekt koji se aktivno razvija, izvorni kod ovisi o najnovijim knjižnicama i prevoditelju. Dakle, velike su šanse za izgradnju neuspjele, potpis metode knjižnice, verzija prevoditelja, sukob ovisnosti … Htio bih koristiti opencv4nodejs za izradu jednostavne aplikacije i ne zahtijevaju najnovije značajke. Pa kad sam pronašao način za postizanje uspjeha opencv4nodejs, želio bih ga zamrznuti na Docker sliku i napraviti svoje kodiranje aplikacije

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

Korak 5: Razvoj Brzina izgradnje vs Veličina slike

Brzina izgradnje u razvoju Veličina slike
Brzina izgradnje u razvoju Veličina slike
Brzina izgradnje u razvoju Veličina slike
Brzina izgradnje u razvoju Veličina slike

Možda ste otkrili da moj projekt prepoznavanja lica-foto-osd ima 2 verzije Dockfilea:

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

Tijekom razvoja, volim podijeliti naredbu RUN što je moguće manje i organizirati najvjerojatnije promjenu naredbe RUN u posljednji korak. Dakle, za svaku izgradnju za razvojne promjene mogu iskoristiti prethodni izgrađeni sloj što je više moguće i uštedjeti mnogo na brzini izgradnje.

Nasuprot tome, prije izdavanja kombinirat ću sve naredbe RUN u jednu. manji sloj može znatno smanjiti veličinu slike Docker. Moj projekt za osvještavanje lica, foto-osd, na primjer, može smanjiti veličinu veću od 100 MB.

Korak 6: Multi Arch slike

Multi Arch Images
Multi Arch Images

Kao što je već spomenuto, RPi ne voli procesorsku snagu. Upotreba RPi build Docker slike možda nije dobar izbor, pogotovo ako vaš jedini RPi izvodi druge projekte.

Upotreba x86 računala također vam može pomoći u izgradnji Docker slike. Više detalja potražite ovdje:

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

jednostavne 2 naredbe mogu paralelno izgraditi x86 i ARM Docker sliku:

docker buildx create --use

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

Multi Arch može stvoriti sliku više platformi s istom Docker oznakom slike, tako da se vaš projekt može neometano izvoditi na različitim strojevima. npr.

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

Bez obzira pokrenete li gornju naredbu na RPi ili svom x86 računalu, možete dobiti Lua runtime okruženje.

Korak 7: Sretan RPi

Sada možete lakše razvijati i dijeliti svoj RPi projekt!

Preporučeni: