Sadržaj:
- Korak 1: Zašto Docker?
- Korak 2: Docker iznad glave
- Korak 3: Instalirajte Docker
- Korak 4: Izgradnja Docker slike
- Korak 5: Razvoj Brzina izgradnje vs Veličina slike
- Korak 6: Multi Arch slike
- Korak 7: Sretan RPi
Video: Izgradite Docker sliku za Raspberry Pi: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
Ove upute pokazuju kako izgraditi Docker sliku za Raspberry Pi.
Korak 1: Zašto Docker?
Možete koristiti Raspberry Pi (RPi) za mnoge stvari, mali web server, AI pomoćnik, robotiku itd.
Mnogi projekti koje želite isprobati, ali bolne točke su:
Vrijeme je za izgradnju
RPi ne voli procesorsku snagu, a SD/USB pogon ograničio je IO brzinu. Koristi apt install all zavisni paket zahtijeva sat vremena, a za izgradnju izvora potrebno je više sati. Posebno za projekte vezane za AI, vrijeme je za čekanje više od vremena za isprobavanje.
Konflikt verzija
Svi isprobavaju mnogo projekata u jednom RPi. Kada ste isprobali projekt i htjeli biste se prebaciti na drugi, možda ćete otkriti grešku u izgradnji uzrokovanu sukobom verzije biblioteka ovisnosti s prethodnim projektom. Neke biblioteke prestaju se razvijati prije nekoliko godina i zavise od nekih vrlo starih biblioteka. Nasuprot tome, aktivni projekt ovisio je o najnovijim bibliotekama. Oba projekta ne mogu koegzistirati u istom SD/USB pogonu ?.
Sigurnosna kopija slike
Budući da neki projekti ne mogu postojati zajedno, jednostavno kupite više SD/USB pogona kako bi slika svakog projekta ostala ovisna. Ako novac nije ograničen ?. Ali to povećava poteškoće u upravljanju datotekama/slikama, ponekad vam je potrebno zamijeniti SD/USB i pokrenuti se više puta da biste saznali što želite.
Teško podijeliti
Kada napravite svoj projekt i želite podijeliti izvor s prijateljima, vaši prijatelji mogu dobiti povratnu datoteku pri izgradnji. Verzija distribucije/biblioteke prestara ili previše nova, parametri izgradnje i neki trikovi. Morate iskoristiti vrijeme za rješavanje drugih problema pri izgradnji, ali ne i za podršku samom projektu.
Gore navedene bolne točke su moje iskustvo u ovih nekoliko godina. Docker može većinom pomoći.
Docker započinje izgradnju odabirom unaprijed izgrađene roditeljske slike. Npr. debian: jessie-slim početak od stare stabilne Debian distribucije male težine; čvor: 10-buster-slim start iz Debian distribucije male težine sa instaliranim Node.js 10. Unaprijed izgrađena slika može uštedjeti mnogo vremena za fleširanje slike, ažuriranje i instaliranje biblioteka koje zavise. Svaki projekt može započeti s različite verzije OS -a, runtime verzije i verzije biblioteke. Kada završite s razvijanjem vlastitog projekta, možete gurnuti sliku Dockera u docker čvorište i podijeliti je sa svima. Sve podatke o projektu možete čuvati na istom SD/USB -u (podaci bi trebali rutinski sigurnosno kopirati na druge medije). Za uštedu lokalne pohrane, čak možete i očistiti sliku Dockera kada se ne koristi, kad god možete ponovo povući iz Docker čvorišta.
Korak 2: Docker iznad glave
Docker je dodao jedan sloj za virtualiziranje, a troškovi su zabrinjavajući. Nisam previše testirao oko Dockera. Većina rezultata na Google -u tvrdi da imaju vrlo niske troškove i pronašao sam ovaj dokument o nekim srodnim istraživanjima:
domino.research.ibm.com/library/cyberdig.n…
Korak 3: Instalirajte Docker
Jednostavno pokrenite:
curl -sSL https://get.docker.com | sh
Ref.:
www.raspberrypi.org/blog/docker-comes-to-…
docs.docker.com/get-started/
Korak 4: Izgradnja Docker slike
Molimo vas da pronađete službeni vodič o izgradnji docker slike:
docs.docker.com/get-started/part2/
Imam 2 projekta koji koriste Docker, možda ćete pronaći Dockerfile kao referencu:
BanateCAD zahtijeva vrijeme izvođenja Lua i neke Lua biblioteke. Samo Lua 5.1 može biti kompatibilan sa svim potrebnim Lua bibliotekama, ali to je proizvod iz 2006. Najnovija Debian distribucija koja može izgraditi uspjeh Lua 5.1 je Jessie (verzija prije trenutne stare Debian stabilne). Zato sam izgradio Docker Image okruženje Lua 5.1 za njegovo pokretanje
github.com/moononournation/BanateCAD/tree/…
OpenCV je projekt koji se aktivno razvija, izvorni kod ovisi o najnovijim bibliotekama i kompajleru. Tako da su velike šanse za izgradnju neuspješne, potpis metode biblioteke, verzija kompajlera, sukob zavisnosti … Htio bih koristiti opencv4nodejs za izradu jednostavne aplikacije i ne zahtijevaju najnovije funkcije. Dakle, kada sam pronašao način za postizanje uspjeha opencv4nodejs, želio bih ga zamrznuti na Docker sliku i napraviti svoje kodiranje aplikacije
github.com/moononournation/face-aware-phot…
Korak 5: Razvoj Brzina izgradnje vs Veličina slike
Možda ste otkrili da moj projekt prepoznavanja lica-foto-osd ima 2 verzije Dockfile-a:
github.com/moononournation/face-aware-phot…
U toku razvoja, volim podijeliti RUN naredbu što je moguće manje i organizovati najverovatnije promjenu naredbe RUN u posljednji korak. Tako da za svaku verziju za razvojnu promjenu mogu koristiti prethodni izgrađeni sloj što je više moguće i uštedjeti veliku brzinu izgradnje.
Nasuprot tome, prije izdavanja kombinirat ću sve RUN naredbe u jednu. manji sloj može znatno smanjiti veličinu slike Docker. Moj projekt sa osvještavanjem lica photo-osd kao primjer može smanjiti veličinu veću od 100 MB.
Korak 6: Multi Arch slike
Kao što je već spomenuto, RPi ne voli procesorsku snagu. Upotreba RPi build Docker slike možda nije dobar izbor, posebno ako vaš jedini RPi pokreće druge projekte.
Upotreba x86 računara također vam može pomoći u izgradnji Docker slike. Više detalja potražite ovdje:
www.docker.com/blog/multi-arch-images/
jednostavne 2 naredbe mogu paralelno izgraditi x86 i 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 može stvoriti sliku za više platformi s istom Docker oznakom slike, tako da se vaš projekt može neometano izvoditi na različitim mašinama. npr.
docker run -it moononournation/debian-imagemagick-lua-meshlab: 1.0.1
Bez obzira na to da gornju naredbu pokrenete na RPi -u ili svom x86 računaru, možete dobiti Lua runtime okruženje.
Korak 7: Sretan RPi
Sada možete lakše razvijati i dijeliti svoj RPi projekt!
Preporučuje se:
Zanimljiv vodič za programiranje za dizajnera-Pokrenite svoju sliku (drugi dio): 8 koraka
Zanimljiv vodič za programiranje za dizajnera-Pokrenite svoju sliku (drugi dio): Matematika se većini vas čini beskorisnom. U svakodnevnom životu najčešće se koristi samo zbrajanje, oduzimanje, množenje i dijeljenje. Međutim, sasvim je drugačije ako možete stvarati pomoću programa. Što više znate, to ćete postići sjajniji rezultat
Kako napraviti sjajnu sliku profila za svoj Chromebook: 9 koraka
Kako napraviti sjajnu sliku profila za svoj Chromebook: Pozdrav svima! Ovo je Gamer Bro Cinema, a danas ćemo vas naučiti kako napraviti sjajnu sliku profila YouTube -a za svoj YouTube kanal! Ova vrsta slike profila može se napraviti samo na Chromebooku. Hajde da počnemo
Nightvision Laserbeak! (ILI Kako napraviti baterijsku svjetiljku koja čuva noćnu sliku, LED Throwie, Transformer Toy Mashup!): 5 koraka
Nightvision Laserbeak! (ILI Kako napraviti baterijsku svjetiljku koja čuva noćnu vizuru, LED bacač, transformatorska igračka za miješanje igračaka!): Noub instrukcija za noob. Šta dobijate kada sastavljate svjetiljku koja čuva noćnu vizuru, LED bacanje i šiljati transformator igračka? Instruktor sa zaista dugim imenom! Nazvat ćemo ga "Nightvision Laserbeak" za
Kako to učiniti-E-INK MODUL EKRANSTVA E-PAPIRA-2. dio - Uvoz Prilagodite sliku: 4 koraka
Kako to učiniti-E-INK MODUL EKRANSTVA E-PAPIRA-2. dio | Uvoz Prilagodite sliku: U ovom vodiču za 2. dio kako to učiniti-E-INK MODUL EKRANSTVENOG EKRANSTVA | Uvoz prilagođene slike, podijelit ću s vama kako uvesti sliku koja vam se sviđa i prikazati je na modulu za prikaz e-tinte. Vrlo je jednostavno uz pomoć nekoliko s
Pretvorite 2D sliku u 3D model: 7 koraka (sa slikama)
Pretvorite 2D sliku u 3D model: Jeste li ikada htjeli snimiti 2D sliku i pretvoriti je u 3D model? Ova instrukcija će vam pokazati kako s besplatnom skriptom i Fusion 360.Šta će vam trebatiFusion 360 (Mac / Windows) Šta ćete učiniti Preuzmite i instalirajte Fusion 360. Kliknite ovdje za besplatnu registraciju