Docker -kép készítése a Raspberry Pi számára: 7 lépés
Docker -kép készítése a Raspberry Pi számára: 7 lépés
Anonim
Docker kép készítése a Raspberry Pi számára
Docker kép készítése a Raspberry Pi számára

Ez az oktatóanyag bemutatja, hogyan lehet Docker Image -t készíteni a Raspberry Pi számára.

1. lépés: Miért Docker?

Használhatja a Raspberry Pi -t (RPi) sok mindenre, apró webszerverre, AI asszisztensre, robotikára stb.

Sok projektet szeretne kipróbálni, de a fájdalmas pontok a következők:

Az építkezés ideje

Az RPi nem szereti a feldolgozási teljesítményt, és az SD/USB meghajtó korlátozta az IO sebességét. Az apt install all dependency csomag használata egy órát igényel, a forrás létrehozása pedig több órát igényel. Különösen a mesterséges intelligenciával kapcsolatos projekteknél érdemes többet várni, mint próbálkozni.

Verzióütközés

Mindenki sok projektet próbál meg egy RPi -ben. Ha kipróbált egy projektet, és szeretne átváltani egy másikra, előfordulhat, hogy valamilyen építési hibát okoz a függőségi könyvtárak verziójának ütközése az előző projekttel. Néhány könyvtár néhány éve leáll, és nagyon régi könyvtáraktól függ. Ezzel szemben az aktív projekt a legújabb könyvtáraktól függött. Mindkét projekt nem létezhet együtt ugyanabban az SD/USB meghajtóban ?.

Képmentés

Mivel egyes projektek nem létezhetnek együtt, egyszerűen vásároljon több SD/USB meghajtót, hogy minden projektkép függő legyen. Ha a pénz nem korlátozott? De növeli a fájl-/képkezelés nehézségeit, néha cserélni kell az SD -t/USB -t, és sokszor kell indítani, hogy megtudja, mit szeretne.

Nehéz megosztani

Amikor felépítette a projektet, és meg szeretné osztani a forrást barátaival, előfordulhat, hogy barátai visszajelzést kapnak az építés sikertelenségéről. A terjesztési/könyvtári verzió túl régi vagy túl új, a paraméterek építése és néhány trükk. Fel kell töltenie az időt mások építési problémáinak megoldására, de nem támogatnia magát a projektet.

A fenti fájdalompontok az én tapasztalataim ebben a néhány évben. A Docker a legtöbb esetben segíthet.

A Docker az előregyártott szülőkép kiválasztásával kezdi az építést. Például. debian: jessie-slim start egy régi stabil Debian könnyű súlyelosztásból; csomópont: 10-buster-slim start a Debian könnyű súlyelosztásból a Node.js 10 telepítésével. Az előre elkészített kép sok időt takaríthat meg a vaku villanásával, a frissítések beszerzésével és a függő könyvtárak telepítésével. Minden projekt különböző operációs rendszer verziójú, futásidejű és könyvtári verzióból indulhat ki. Ha befejezte saját projektjének kidolgozását, a Docker -képet áthelyezheti a docker hubba, és megoszthatja mindenkivel. Az összes projektadatot ugyanazon az SD/USB -n tárolhatja (az adatoknak rutinszerűen máshová kell menteniük). A helyi tárhely megtakarítása érdekében akár akkor is megtisztíthatja a Docker -képet, ha nem használja, bármikor újra előhívhatja a Docker hubból.

2. lépés: Dokkoló fölött

Docker hozzáadott egy virtualizációs réteget, a rezsicsökkentés aggodalomra ad okot. Nem teszteltem túl sokat a Docker rezsijével kapcsolatban. A legtöbb google -találat nagyon alacsony rezsiköltséget állít, és ezt a dokumentumot találtam néhány kapcsolódó kutatásról:

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

3. lépés: Telepítse a Docker alkalmazást

Egyszerűen fuss:

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

Ltsz.:

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

docs.docker.com/get-started/

4. lépés: Docker -kép készítése

Kérjük, keresse meg a dokkoló képének építésére vonatkozó hivatalos útmutatót:

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

Két projektem van a Docker használatával, a Dockerfile referenciaként megtalálható:

A BanateCAD Lua futási időt és néhány további Lua könyvtárat igényel. Csak a Lua 5.1 kompatibilis az összes szükséges Lua könyvtárral, de ez a 2006 -os év terméke. A legújabb Debian disztribúció, amely Lua 5.1 sikert hozhat létre, a Jessie (A jelenlegi Debian régi istálló előtti verzió). Ezért építettem egy Lua 5.1 környezetű Docker Image programot a futtatásához

github.com/moononournation/BanateCAD/tree/…

Az OpenCV egy aktívan fejlődő projekt, a forráskód a legújabb könyvtáraktól és fordítótól függ. Tehát nagyon nagy az esélye a sikertelen könyvtári módszer aláírásának, fordítói verziójának, függőségi konfliktusának létrehozására … Szeretném az opencv4nodejs -t használni egy egyszerű alkalmazás létrehozásához, és nem igényelnek legújabb funkciókat. Tehát amikor megtaláltam az opencv4nodejs sikerének kiépítésének módját, szeretném lefagyasztani egy Docker Image -re, és elvégezni a tényleges alkalmazáskódolást

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

5. lépés: A Speed Vs képméret fejlesztése

Fejlesztés Build Speed Vs képméret
Fejlesztés Build Speed Vs képméret
Fejlesztés Build Speed Vs képméret
Fejlesztés Build Speed Vs képméret

Lehet, hogy az arctudatos fotó-osd projektemnek két verziója van a Dockfile-ből:

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

Fejlesztés közben szeretem a split RUN parancsot a lehető legkisebbre, és elrendezem, hogy a RUN parancsot az utolsó lépésre változtassam. Tehát minden fejlesztéshez szükséges építéshez a lehető legjobban ki tudom használni a korábbi épített réteget, és sok építési sebességet spórolhatok meg.

Ezzel szemben az összes RUN parancsot egyben egyesítem a kiadás előtt. kisebb réteg jelentősen csökkentheti a Docker képméretét. Az arctudatos fotó-osd projektem példaként több mint 100 MB-ot tud csökkenteni.

6. lépés: Több archív képek

Multi Arch képek
Multi Arch képek

Amint azt korábban említettük, az RPi nem szereti a feldolgozási teljesítményt. Az RPi build Docker kép használata nem biztos, hogy jó választás, különösen akkor, ha az egyetlen RPi másik projektet futtat.

Használjon x86 -os számítógépet a Docker Image elkészítéséhez is, további részleteket itt talál:

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

Egyszerű 2 parancs párhuzamosan építheti az x86 és az ARM Docker Image képeket:

docker buildx create -use

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

A Multi Arch többplatformos képet készíthet ugyanazzal a Docker képcímkével, így a projekt zökkenőmentesen futtatható különböző gépeken. például.

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

Függetlenül attól, hogy futtatja a fenti parancsot RPi -n vagy x86 számítógépén, Lua futási környezetet kaphat.

7. lépés: Boldog RPi -t

Mostantól könnyebben fejlesztheti és megoszthatja RPi projektjét!

Ajánlott: