Sisällysluettelo:
- Vaihe 1: Miksi Docker?
- Vaihe 2: Dockerin yläpuolella
- Vaihe 3: Asenna Docker
- Vaihe 4: Docker -kuvan luominen
- Vaihe 5: Kehitä Build Speed Vs -kuvakoko
- Vaihe 6: Multi Arch -kuvat
- Vaihe 7: Hyvää RPi: tä
Video: Rakenna Docker -kuva Raspberry Pi: 7 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
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
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
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:
Rakenna Internet-ohjattu videon suoratoistorobotti Arduinon ja Raspberry Pi: n avulla: 15 vaihetta (kuvilla)
Rakenna Internet-ohjattu videostriimausrobotti Arduinon ja Raspberry Pi: n kanssa: Olen @RedPhantom (alias LiquidCrystalDisplay / Itay), 14-vuotias israelilainen opiskelija, joka opiskelee Max Shein Junior High School for Advanced Science and Mathematics -koulussa. Teen tämän projektin kaikkien opittavaksi ja jaettaviksi! Sinulla saattaa olla
Rakenna interaktiivinen Rainbow -silta Minecraft Raspberry Pi Editionin avulla: 11 vaihetta
Rakenna Rainbow Interactive Bridge -sovellus Minecraftin Raspberry Pi Editionin avulla: Eilen näin 8-vuotiaan veljenpoikani leikkivän Minecraftia aiemmin antamani Raspberry Pi -pelin kanssa, ja sitten sain idean, joka käyttää koodia räätälöidyn ja jännittävän Minecraftin luomiseen- pi LED -lohkojen projekti. Minecraft Pi on loistava tapa aloittaa
Rakenna Raspberry Pi SUPER -sääasema: 8 vaihetta (kuvilla)
Rakenna Raspberry Pi SUPER -sääasema: Katsotaanpa, me ihmiset puhumme paljon säästä ⛅️. Keskimääräinen ihminen puhuu säästä neljä kertaa päivässä keskimäärin 8 minuuttia ja 21 sekuntia. Tee matematiikka ja se on yhteensä 10 kuukautta elämästäsi, jonka vietät haukotellen
Rakenna amatööriradio APRS RX Only IGate käyttämällä Raspberry Pi: tä ja RTL-SDR-sovitinta alle puolessa tunnissa: 5 vaihetta
Rakenna amatööriradio APRS RX Only IGate käyttämällä Raspberry Pi: tä ja RTL-SDR-sovitinta alle puolessa tunnissa: Huomaa, että tämä on nyt melko vanha, joten jotkut osat ovat virheellisiä ja vanhentuneita. Muokattavat tiedostot ovat muuttuneet. Olen päivittänyt linkin antamaan sinulle uusimman version kuvasta (käytä 7-zip-pakkausta sen purkamiseen), mutta saat täydelliset ohjeet
Rakenna parempi Raspberry Pi -virtapainike: 4 vaihetta
Rakenna parempi Raspberry Pi-virtapainike: Raspberry-virrankatkaisu- tai sammutuspainike on erittäin helppo tehdä. Webissä on paljon tällaisia projekteja ja muutama täällä Instructablesissa, mutta mikään niistä (jonka näen) ei kerro, milloin Pi on todella lopettanut sammutuksensa ja siksi se on