Obsah:

Vytvořte obrázek Dockeru pro Raspberry Pi: 7 kroků
Vytvořte obrázek Dockeru pro Raspberry Pi: 7 kroků

Video: Vytvořte obrázek Dockeru pro Raspberry Pi: 7 kroků

Video: Vytvořte obrázek Dockeru pro Raspberry Pi: 7 kroků
Video: Jak nainstalovat Cacti krok za krokem 2024, Listopad
Anonim
Vytvořte obrázek Dockeru pro Raspberry Pi
Vytvořte obrázek Dockeru pro Raspberry Pi

Tento návod ukazuje, jak vytvořit bitovou kopii Dockeru pro Raspberry Pi.

Krok 1: Proč Docker?

Raspberry Pi (RPi) můžete použít k mnoha věcem, malý webový server, asistent AI, robotika … atd.

Mnoho projektů, které chcete vyzkoušet, ale bolestivé body jsou:

Čas na stavbu

RPi nemá zájem o výpočetní výkon a jednotka SD/USB omezila rychlost IO. Použijte balíček apt install all dependency vyžaduje hodinu a vytváření zdroje vyžaduje více hodin. Zejména u projektů souvisejících s umělou inteligencí je čas čekat déle než čas na vyzkoušení.

Verze Konflikt

Každý vyzkouší mnoho projektů v jednom RPi. Když jste zkusili projekt a chtěli byste přejít na jiný, můžete narazit na selhání sestavení způsobené konfliktem verzí knihoven závislostí s předchozím projektem. Některé knihovny se před několika lety přestaly vyvíjet a závisí na některých velmi starých knihovnách. Naproti tomu aktivní projekt závisel na nejnovějších knihovnách. Oba projekty nemohou existovat současně na stejné jednotce SD/USB?

Zálohování obrazu

Vzhledem k tomu, že některé projekty nemohou existovat současně, jednoduše si kupte více jednotek SD/USB, aby byl každý obrázek projektu závislý. Pokud peníze nejsou omezeny? Zvyšuje to však potíže se správou souborů/obrázků, někdy potřebujete vyměnit SD/USB a mnohokrát spustit, abyste zjistili, co chcete.

Těžko sdílet

Když jste vytvořili svůj projekt a chtěli byste sdílet zdroj s přáteli, vašim přátelům se může dostat zpětné hlášení o neúspěchu sestavení. Verze distribuce/knihoven příliš stará nebo příliš nová, vytváření parametrů a nějaké triky. Potřebujete využít čas k vyřešení dalších problémů se stavěním, ale nepodporovat samotný projekt.

Výše uvedené body bolesti jsou mými zkušenostmi v těchto několika letech. Docker může ve většině případů pomoci.

Docker zahájí sestavení výběrem předem připraveného nadřazeného obrazu. Např. debian: tenký start ze staré stabilní distribuce hmotnosti Debianu; node: 10-buster-slim start from Debian light weight distribution with Node.js 10 installed. Předem vytvořený obraz může ušetřit spoustu času na flash image, aktualizaci a instalaci závislých knihoven. Každý projekt může začít z jiné verze operačního systému, runtime verze a verze knihoven. Po dokončení vývoje vlastního projektu můžete obrázek Dockeru odeslat do centra dockeru a sdílet s každým. Všechna data projektu můžete ponechat na stejném SD/USB (data by měla být rutinně zálohována na jiná média). Chcete -li ušetřit místní úložiště, můžete dokonce vyčistit bitovou kopii Dockeru, když ji nepoužíváte, kdykoli můžete znovu načíst z centra Docker.

Krok 2: Docker Overhead

Docker přidal jednu virtualizovanou vrstvu, režie je problém. O režii Dockeru jsem příliš netestoval. Většina výsledků Googlu tvrdí, že jsou velmi nízké režie, a našel jsem tento dokument o nějakém souvisejícím výzkumu:

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

Krok 3: Nainstalujte Docker

Jednoduše spusťte:

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

Odkaz:

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

docs.docker.com/get-started/

Krok 4: Budování obrázku Dockeru

Podívejte se na oficiální příručku ke stavbě dokovacího obrázku:

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

Mám 2 projekty používající Docker, můžete najít Dockerfile jako referenci:

BanateCAD vyžaduje Lua runtime a některé další Lua knihovny. Pouze Lua 5.1 může být kompatibilní se všemi požadovanými knihovnami Lua, ale je to produkt roku 2006. Nejnovější distribuce Debianu, která dokáže vybudovat úspěch Lua 5.1, je Jessie (Verze před současnou starou stabilitou Debianu). Takže jsem postavil Lua 5.1 prostředí Docker Image pro jeho spuštění

github.com/moononournation/BanateCAD/tree/…

OpenCV je aktivně se rozvíjející projekt, zdrojový kód závisí na nejnovějších knihovnách a kompilátoru. Takže je velmi vysoká šance na sestavení neúspěšná, podpis metody knihoven, verze kompilátoru, konflikt závislostí … Chtěl bych použít opencv4nodejs k vytvoření jednoduché aplikace a nevyžadovat nejnovější funkce. Takže když jsem našel způsob, jak vybudovat úspěch opencv4nodejs, chtěl bych to zmrazit na obrázek Dockeru a provést vlastní kódování aplikace

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

Krok 5: Vývoj Rychlost sestavení vs. velikost obrázku

Vývoj Rychlost sestavení vs. Velikost obrázku
Vývoj Rychlost sestavení vs. Velikost obrázku
Vývoj Rychlost sestavení vs. Velikost obrázku
Vývoj Rychlost sestavení vs. Velikost obrázku

Můžete zjistit, že můj projekt face-aware-photo-osd má 2 verze Dockfile:

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

Při vývoji se mi líbí rozdělit příkaz RUN na co nejmenší a zařídit, aby s největší pravděpodobností změnil příkaz RUN na poslední krok. Takže pro každé sestavení pro změnu vývoje mohu co nejvíce využít předchozí vytvořenou vrstvu a ušetřit spoustu rychlosti sestavení.

Naproti tomu před spuštěním zkombinuji všechny příkazy RUN v jednom. menší vrstva může výrazně zmenšit velikost obrázku Dockeru. Můj projekt face-aware-photo-osd může například snížit velikost více než 100 MB.

Krok 6: Multi Arch Images

Multi Arch obrázky
Multi Arch obrázky

Jak již bylo zmíněno dříve, RPi nemá zájem o výpočetní výkon. Použít obrázek Docker pro sestavení RPi nemusí být dobrou volbou, zvláště když na vašem jediném RPi běží jiné projekty.

Pomocí počítače x86 vám také může pomoci vytvořit bitovou kopii Dockeru, další podrobnosti najdete zde:

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

jednoduché 2 příkazy mohou paralelně stavět x86 a 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 může vytvářet multiplatformní bitovou kopii se stejnou značkou image Dockeru, takže váš projekt může bezproblémově běžet na jiném počítači. např.

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

Bez ohledu na to, že výše uvedený příkaz spustíte na počítači RPi nebo x86, můžete získat prostředí Lua runtime.

Krok 7: Šťastné RPi

Nyní můžete svůj projekt RPi snáze vyvíjet a sdílet!

Doporučuje: