Sisällysluettelo:

Rakenna Docker -kuva Raspberry Pi: 7 vaihetta
Rakenna Docker -kuva Raspberry Pi: 7 vaihetta

Video: Rakenna Docker -kuva Raspberry Pi: 7 vaihetta

Video: Rakenna Docker -kuva Raspberry Pi: 7 vaihetta
Video: How to turn NAS into Cloud Storage | Install NextCloud on OpenMediaVault 2024, Marraskuu
Anonim
Rakenna Docker -kuva Raspberry Pi: lle
Rakenna Docker -kuva Raspberry Pi: lle

Tässä ohjeessa esitetään Docker -kuvan luominen Raspberry Pi: lle.

Vaihe 1: Miksi Docker?

Voit käyttää Raspberry Pi: tä (RPi) tekemään monia asioita, pienen verkkopalvelimen, tekoälyavustajan, robotiikan … jne.

Monet projektit haluat kokeilla, mutta kipupisteet ovat:

Rakentamisen aika

RPi ei halua prosessointitehoa, ja SD/USB -asema rajoitti IO -nopeutta. Käytä apt install all riippuvuuspakettia vaatii tunnin ja lähdekoodin rakentaminen lisää tunteja. Erityisesti tekoälyyn liittyvissä projekteissa on aikaa odottaa enemmän kuin aikaa kokeilla.

Version ristiriita

Kaikki kokeilevat monia projekteja yhdessä RPi: ssä. Kun olet kokeillut projektia ja haluat vaihtaa toiseen, saatat huomata jonkin rakennusvirheen, joka johtuu riippuvuuskirjastojen version ristiriidasta edellisen projektin kanssa. Jotkut kirjastot lakkaavat kehittymästä muutama vuosi sitten ja ovat riippuvaisia joistakin hyvin vanhoista kirjastoista. Sitä vastoin aktiivinen projekti riippui uusimmista kirjastoista. Molemmat projektit eivät voi olla samanaikaisesti samassa SD/USB-asemassa ?.

Kuvan varmuuskopiointi

Koska jotkin projektit eivät voi olla rinnakkain, hanki yksinkertaisesti lisää SD-/USB-asemaa, jotta jokainen projektikuva pysyy riippuvaisena. Jos rahaa ei ole rajoitettu ?. Mutta se lisää tiedostojen/kuvien hallinnan vaikeuksia, joskus tarvitset SD/USB -muistin vaihtamisen ja käynnistyksen monta kertaa selvittääksesi mitä haluat.

Vaikea jakaa

Kun rakensit projektisi ja haluat jakaa lähteen ystävillesi, ystäväsi voivat saada palautteen rakentamisen epäonnistumisesta. Jakelu-/kirjastoversio on liian vanha tai liian uusi, rakennusparametreja ja joitain temppuja. Sinun on käytettävä aikaa muiden rakentamisongelmien ratkaisemiseen, mutta et tue itse projektia.

Yllä olevat kipupisteet ovat kokemukseni muutaman vuoden ajalta. Docker voi auttaa suurinta osaa.

Docker aloittaa rakentamisen valitsemalla esivalmistetun vanhemman kuvan. Esim. debian: jessie-slim aloittaa vanhasta vakaasta Debianin kevyestä jakaumasta; solmu: 10-buster-slim aloittaa Debianin kevyestä jakelusta, kun Node.js 10 on asennettu. Esivalmistettu kuva voi säästää paljon aikaa flash -kuvan lataamiseen, päivitysten hankkimiseen ja riippuvien kirjastojen asentamiseen. Jokainen projekti voi alkaa eri käyttöjärjestelmäversiosta, ajonaikaisesta versiosta ja kirjastojen versiosta. Kun olet kehittänyt oman projektisi, voit siirtää Docker -kuvan docker -keskittimeen ja jakaa sen kaikille. Voit säilyttää kaikki projektitiedot samalla SD/USB -muistilla (tietojen pitäisi rutiininomaisesti varmuuskopioida muihin tietovälineisiin). Paikallisen tallennustilan säästämiseksi voit jopa puhdistaa Docker -kuvan, kun et käytä sitä, milloin tahansa, kun voit vetää Docker -keskittimen uudelleen.

Vaihe 2: Dockerin yläpuolella

Docker lisäsi yhden virtualisointikerroksen, yläpuolella on huolta. En ole testannut liikaa Dockerin yläpuolella. Useimmat Googletetut tulokset väittävät erittäin alhaisia yleiskustannuksia, ja löysin tämän asiakirjan joistakin asiaan liittyvistä tutkimuksista:

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

Vaihe 3: Asenna Docker

Juokse yksinkertaisesti:

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

Viite.:

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

docs.docker.com/get-started/

Vaihe 4: Docker -kuvan luominen

Löydät virallisen oppaan telakkakuvan rakentamisesta:

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

Minulla on 2 projektia Dockerin avulla, saatat löytää Docker -tiedoston viitteenä:

BanateCAD edellyttää Lua -suoritusaikaa ja joitain Lua -kirjastoja. Vain Lua 5.1 voi olla yhteensopiva kaikkien vaadittujen Lua -kirjastojen kanssa, mutta se on vuoden 2006 tuote. Uusin Debian -jakelu, joka voi rakentaa Lua 5.1: n menestyksen, on Jessie (versio ennen nykyistä Debianin vanhaa tallia). Joten rakensin Lua 5.1 -ympäristön Docker Image -ohjelman sen suorittamiseen

github.com/moononournation/BanateCAD/tree/…

OpenCV on aktiivisesti kehittyvä projekti, jonka lähdekoodi riippuu uusimmista kirjastoista ja kääntäjästä. Joten se on erittäin suuri mahdollisuus rakentaa epäonnistunut, kirjastojen menetelmä allekirjoitus, kääntäjä versio, riippuvuus ristiriita … Haluaisin käyttää opencv4nodejs tehdä yksinkertainen sovellus eikä vaadi uusimpia ominaisuuksia. Joten kun löysin tavan rakentaa opencv4nodejs -menestystä, haluaisin jäädyttää sen Docker -kuvaksi ja tehdä todellisen sovelluksen koodauksen

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

Vaihe 5: Kehitä Build Speed Vs -kuvakoko

Kehitys Rakenna nopeus vs kuvan koko
Kehitys Rakenna nopeus vs kuvan koko
Kehitys Rakenna nopeus vs kuvan koko
Kehitys Rakenna nopeus vs kuvan koko

Saatat huomata, että kasvotietoinen-valokuva-osd-projektini sisältää kaksi Dockfile-versiota:

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

Kehityksen aikana pidän split RUN -komennosta mahdollisimman pienenä ja järjestän todennäköisimmin RUN -komennon muuttamisen viimeiseksi vaiheeksi. Joten jokaisen kehityksen muutoksen rakentamisen yhteydessä voin hyödyntää aiempaa rakennettua kerrosta mahdollisimman paljon ja säästää paljon rakentamisnopeutta.

Sitä vastoin yhdistän kaikki RUN -komennot yhdeksi ennen julkaisua. pienempi kerros voi pienentää Docker -kuvan kokoa paljon. Esimerkkinä kasvoni tietoinen valokuva-osd-projekti, joka voi pienentää yli 100 megatavua.

Vaihe 6: Multi Arch -kuvat

Multi Arch -kuvat
Multi Arch -kuvat

Kuten aiemmin mainittiin, RPi ei ole kiinnostunut prosessointitehosta. Käytä RPi -rakenteen Docker -kuvaa ei ehkä ole hyvä valinta, varsinkin kun ainoa RPi käyttää toista projektia.

Käytä x86 -tietokonetta myös Docker -kuvan luomiseen, katso lisätietoja täältä:

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

yksinkertaiset 2 komentoa voivat rakentaa x86- ja ARM Docker Image -kuvan rinnakkain:

docker buildx create -käytä

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

Multi Arch voi rakentaa usean alustan kuvan samalla Docker -kuvatunnisteella, joten projektisi voi toimia saumattomasti eri koneilla. esim.

telakointiasema-kuunpoltto/debian-imagemagick-lua-meshlab: 1.0.1

Riippumatta siitä, suoritatko yllä olevan komennon RPi: llä tai x86 -tietokoneellasi, voit saada Lua -runtime -ympäristön.

Vaihe 7: Hyvää RPi: tä

Voit nyt kehittää ja jakaa RPi -projektisi helpommin!

Suositeltava: