Obsah:
- Krok 1: Proč Docker?
- Krok 2: Docker Overhead
- Krok 3: Nainstalujte Docker
- Krok 4: Budování obrázku Dockeru
- Krok 5: Vývoj Rychlost sestavení vs. velikost obrázku
- Krok 6: Multi Arch Images
- Krok 7: Šťastné RPi
Video: Vytvořte obrázek Dockeru pro Raspberry Pi: 7 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:20
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
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
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:
Jak vytvořit pro svůj Chromebook úžasný profilový obrázek: 9 kroků
Jak vytvořit úžasný profilový obrázek pro Chromebook: Dobrý den, všichni! Toto je Gamer Bro Cinema a dnes vás budeme učit, jak vytvořit úžasnou profilovou fotku YouTube pro váš kanál YouTube! Tento druh profilového obrázku lze provést pouze na Chromebooku. Začněme
Vytvořte obrázek obkladů ve Photoshopu: 5 kroků
Vytvořte obkladový obrázek ve Photoshopu: Naučte se, jak vytvořit obrázek, který se může opakovat ve všech směrech ve Photoshopu 7.0 nebo novějším. Obkladové obrázky jsou skvělé pro stolní počítače
Vložte obrázek pro svůj účet: 4 kroky
Vložte obrázek pro svůj účet: Ukážu některým z vás lidi, kteří potřebují pomoc s přidáním obrázku jako avatara nebo pro vaši instruktáž. Zde je několik podrobných pokynů, jak to udělat. Neváhejte přidat jakékoli komentáře a tipy pro tento návod. Níže
Obrázek 16F676 Programovací zásuvka ICSP pro programátor PICkit 2: 6 kroků
Pic 16F676 Programovací zásuvka ICSP pro programátor PICkit 2: Pokouším se postavit tento duální modul stejnosměrného motoru pro svůj robotický projekt a neměl jsem prostor pro umístění záhlaví pinů ICSP na desce plošných spojů. Takže jsem se rychle vysmál tomuto designu
Vytvořte vzor tilable pro obrázek na pozadí webu: 8 kroků
Vytváření vzorů tilable pro obrázek na pozadí webových stránek: Zde je přímočará a jednoduchá (myslím) metoda pro vytváření obrázků, které lze ukládat vedle sebe, aniž by vypadaly příliš „mřížkově“. Tento tutoriál využívá Inkscape (www.inkscape.org), open-source editor vektorové grafiky. Představuji si, že tato metoda může