Obsah:

Zostavte obrázok Dockera pre Raspberry Pi: 7 krokov
Zostavte obrázok Dockera pre Raspberry Pi: 7 krokov

Video: Zostavte obrázok Dockera pre Raspberry Pi: 7 krokov

Video: Zostavte obrázok Dockera pre Raspberry Pi: 7 krokov
Video: Электрический или водяной полотенцесушитель? Что выбрать? Установка. #25 2024, November
Anonim
Vytvorte obrázok Dockera pre Raspberry Pi
Vytvorte obrázok Dockera pre Raspberry Pi

Tento návod ukazuje, ako vytvoriť obraz Dockeru pre Raspberry Pi.

Krok 1: Prečo Docker?

Raspberry Pi (RPi) môžete použiť na mnoho vecí, malý webový server, asistenta AI, robotiku … atď.

Mnoho projektov, ktoré chcete vyskúšať, ale bolestivé body sú:

Čas na stavbu

RPi nemá záujem o výpočtový výkon a jednotka SD/USB obmedzuje rýchlosť IO. Použitie balíka apt install all all dependency vyžaduje hodinu a vytvorenie zdroja vyžaduje ďalšie hodiny. Najmä pri projektoch súvisiacich s AI je čas čakať viac, ako čas na vyskúšanie.

Konflikt verzie

Každý vyskúša veľa projektov v jednom RPi. Keď ste vyskúšali projekt a chceli by ste prejsť na iný, môže sa stať, že zlyhanie zostavy spôsobené konfliktom verzií knižníc závislostí bude s predchádzajúcim projektom. Niektoré knižnice sa prestali vyvíjať pred niekoľkými rokmi a závisia od niektorých veľmi starých knižníc. Na rozdiel od toho aktívny projekt závisel od najnovších knižníc. Nemôžu oba projekty existovať súčasne na tej istej jednotke SD/USB ?.

Zálohovanie obrazu

Pretože niektoré projekty nemôžu existovať súčasne, jednoducho si kúpte viac diskov SD/USB, aby bol každý obrázok projektu závislý. Ak peniaze nie sú obmedzené? Zvyšuje to však ťažkosti so správou súborov/obrázkov, niekedy potrebujete vymeniť SD/USB a mnohokrát zaviesť systém, aby ste zistili, čo chcete.

Ťažko zdieľať

Keď ste zostavili svoj projekt a chceli by ste zdieľať zdroj s priateľmi, vašim priateľom sa môže stať, že sa im nepodarí spätnú väzbu o zostavení. Verzia distribúcie/knižníc je príliš stará alebo príliš nová, vytvára parametre a niektoré triky. Potrebujete využiť čas na vyriešenie problémov ostatných pri stavbe, ale nepodporovať samotný projekt.

Vyššie uvedené body bolesti sú mojimi skúsenosťami za posledných niekoľko rokov. Docker môže vo väčšine z toho pomôcť.

Docker začne stavať výberom vopred pripraveného nadradeného obrázku. Napr. debian: tenký štart zo starej stabilnej distribúcie nízkej hmotnosti Debianu; node: 10-buster-slim start z ľahkej distribúcie Debianu s nainštalovaným Node.js 10. Vopred vytvorený obrázok môže ušetriť veľa času na prezeranie obrazu, aktualizáciu a inštaláciu závislých knižníc. Každý projekt môže začať z inej verzie operačného systému, verzie runtime a verzie knižníc. Keď skončíte s vývojom vlastného projektu, môžete obrázok Dockera odoslať do centra docker a zdieľať s každým. Všetky údaje o projekte môžete ponechať na rovnakom SD/USB (údaje by sa mali rutinne zálohovať na iné médiá). Aby ste ušetrili miestny ukladací priestor, môžete dokonca vyčistiť obraz Dockeru, keď ho nepoužívate, kedykoľvek môžete z centra Dockera znova vytiahnuť.

Krok 2: Docker nad hlavou

Docker pridal jednu virtualizačnú vrstvu, réžia je problémom. O réžii Dockera som príliš netestoval. Väčšina výsledkov Googlu tvrdí, že sú veľmi nízke réžie, a našiel som tento dokument o niektorých súvisiacich výskumoch:

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

Krok 3: Nainštalujte Docker

Jednoducho spustite:

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

Odkaz:

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

docs.docker.com/get-started/

Krok 4: Vytvorte obrázok Dockera

Pozrite si oficiálneho sprievodcu k obrázku dokovacej stanice pre budovy:

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

Mám 2 projekty používajúce Docker, ako referenciu môžete nájsť súbor Docker:

BanateCAD vyžaduje runtime Lua a niektoré ďalšie knižnice Lua. Iba Lua 5.1 môže byť kompatibilný so všetkými požadovanými knižnicami Lua, ale je to produkt roku 2006. Najnovšia distribúcia Debianu, ktorá môže dosiahnuť úspech Lua 5.1, je Jessie (Verzia pred súčasnou starou stabilnou Debianom). Preto som na jeho spustenie postavil docker Image prostredia Lua 5.1

github.com/moononournation/BanateCAD/tree/…

OpenCV je aktívne sa rozvíjajúci projekt, zdrojový kód závisí od najnovších knižníc a prekladača. Je teda veľká pravdepodobnosť, že sa nepodarí vytvoriť, podpis metódy knižnice, verzia kompilátora, konflikt závislosti … Chcel by som použiť opencv4nodejs na vytvorenie jednoduchej aplikácie a nevyžaduje najnovšie funkcie. Takže keď som našiel spôsob, ako vybudovať úspech opencv4nodejs, rád by som ho zmrazil na obrázok Docker a urobil moje skutočné kódovanie aplikácie

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

Krok 5: Vývoj Veľkosť zostavy vs. veľkosť obrázka

Rýchlosť vývoja Vs Veľkosť obrázku
Rýchlosť vývoja Vs Veľkosť obrázku
Rýchlosť vývoja Vs Veľkosť obrázku
Rýchlosť vývoja Vs Veľkosť obrázku

Môžete vidieť, že môj projekt face-aware-photo-osd má 2 verzie súboru Dockfile:

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

Pri vývoji sa mi páči rozdeliť príkaz RUN na čo najmenší a s najväčšou pravdepodobnosťou zmeniť príkaz RUN na posledný krok. Takže pre každú zostavu na vývojovú zmenu môžem maximálne využiť predchádzajúcu vybudovanú vrstvu a ušetriť veľa rýchlosti zostavovania.

Naproti tomu pred vydaním skombinujem všetky RUN príkazy do jedného. menšia vrstva môže výrazne znížiť veľkosť obrázku Dockera. Môj projekt face-aware-photo-osd môže napríklad znížiť veľkosť viac ako 100 MB.

Krok 6: Obrázky Multi Arch

Multi Arch obrázky
Multi Arch obrázky

Ako už bolo spomenuté, RPi nie je nadšený procesorovým výkonom. Použiť obrázok Docker na zostavenie RPi nemusí byť dobrou voľbou, najmä ak na vašom jedinom RPi prebiehajú ďalšie projekty.

Pri vytváraní obrázku Dockera vám môže pomôcť aj počítač x86. Podrobnejšie informácie nájdete tu:

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

jednoduché 2 príkazy môžu vytvárať x86 a ARM Docker Image paralelne:

docker buildx create --use

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

Multi Arch môže vytvárať multiplatformový obraz s rovnakou značkou obrázku Dockera, takže váš projekt môže bežať na inom počítači bez problémov. napr.

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

Bez ohľadu na to, že vyššie uvedený príkaz spustíte na počítači RPi alebo x86, môžete získať runtime prostredie Lua.

Krok 7: Šťastné RPi

Teraz môžete svoj projekt RPi jednoduchšie vyvíjať a zdieľať!

Odporúča: