Բովանդակություն:
- Քայլ 1: Ինչու՞ Docker:
- Քայլ 2: Docker Overhead
- Քայլ 3: Տեղադրեք Docker- ը
- Քայլ 4. Docker Image- ի կառուցում
- Քայլ 5. Developmentարգացման արագություն ընդդեմ պատկերի չափի
- Քայլ 6: Multi Arch Images
- Քայլ 7: Շնորհավոր RPi:
Video: Ստեղծեք Docker Image Raspberry Pi- ի համար. 7 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
Այս հրահանգները ցույց են տալիս, թե ինչպես կառուցել Docker Image- ը Raspberry Pi- ի համար:
Քայլ 1: Ինչու՞ Docker:
Դուք կարող եք օգտագործել Raspberry Pi (RPi) - ն շատ բան անել, փոքրիկ վեբ սերվեր, AI օգնական, Robotics … և այլն:
Շատ նախագծեր, որոնք ցանկանում եք փորձել, բայց ցավերի կետերն են.
Կառուցելու ժամանակը
RPi- ն հետաքրքրված չէ մշակման հզորությամբ, և SD/USB կրիչը սահմանափակում է IO արագությունը: Օգտագործեք apt install all დამოკიდებულების փաթեթը պահանջում է մեկ ժամ, իսկ աղբյուրի ստեղծումը պահանջում է ավելի շատ ժամեր: Հատկապես արհեստական ինտելեկտի հետ կապված նախագծերի դեպքում `ավելի շատ սպասելու ժամանակ, քան փորձելու ժամանակ:
Տարբերակի կոնֆլիկտ
Բոլորը փորձում են բազմաթիվ նախագծեր մեկ RPi- ում: Երբ դուք փորձել եք որևէ նախագիծ և կցանկանայիք անցնել մեկ այլ նախագծի, կարող եք գտնել որոշ շինարարական ձախողումներ, որոնք առաջացել են կախվածության գրադարանների տարբերակի նախորդ նախագծի հակասությունից: Որոշ գրադարաններ դադարում են զարգանալ մի քանի տարի առաջ և կախված են որոշ հին գրադարաններից: Ի հակադրություն, ակտիվ նախագիծը կախված էր վերջին գրադարաններից: Երկու նախագիծը չի՞ կարող գոյություն ունենալ նույն SD/USB կրիչում:
Պատկերի պահուստավորում
Քանի որ որոշ նախագծեր չեն կարող գոյություն ունենալ, պարզապես ձեռք բերեք ավելի շատ SD/USB կրիչ ՝ նախագծի յուրաքանչյուր պատկերը կախված պահելու համար: Եթե գումարը սահմանափակ չէ: Բայց դա մեծացնում է ֆայլի/պատկերի կառավարման դժվարությունները, երբեմն ձեզ հարկավոր է փոխանակել SD/USB և բազմիցս բեռնաթափել ՝ պարզելու համար, թե ինչ եք ուզում:
Դժվար է կիսվել
Երբ դուք կառուցում եք ձեր նախագիծը և ցանկանում եք աղբյուրը կիսել ընկերների հետ, ձեր ընկերները կարող են հետ ստանալ կառուցվածքի ձախողումը: Բաշխման/գրադարանների տարբերակը չափազանց հին է կամ շատ նոր, կառուցման պարամետրեր և որոշ հնարքներ: Դուք պետք է օգտագործեք ժամանակը ՝ լուծելու ուրիշների խնդիրները, բայց չաջակցեք բուն նախագծին:
Վերոնշյալ ցավի կետերն իմ փորձն են այս մի քանի տարիների ընթացքում: Docker- ը կարող է օգնել դրա մեծ մասին:
Docker- ը սկսում է կառուցել նախապես կառուցված ծնողական պատկերի ընտրությունից: Օրինակ ՝ debian: jessie-slim սկիզբը հին կայուն Debian թեթև քաշի բաշխումից; հանգույց. 10-բարակ-բարակ սկիզբ Debian թեթև քաշի բաշխումից ՝ տեղադրված Node.js 10-ով: Նախապես կառուցված պատկերը կարող է շատ ժամանակ խնայել պատկերը լուսավորելու, թարմացումներ ստանալու և կախված գրադարաններ տեղադրելու համար: Յուրաքանչյուր նախագիծ կարող է սկսվել տարբեր OS տարբերակից, գործարկման ժամանակից և գրադարանների տարբերակից: Երբ ավարտեք ձեր սեփական նախագծի մշակումը, կարող եք Docker- ի պատկերը տեղափոխել docker hub և կիսել բոլորին: Projectրագրի բոլոր տվյալները կարող եք պահել նույն SD/USB- ում (տվյալները պետք է սովորական պահուստավորվեն այլ մեդիայի համար): Տեղական պահեստը խնայելու համար կարող եք նույնիսկ մաքրել Docker- ի պատկերը, երբ այն չեք օգտագործում, ցանկացած պահի կարող եք նորից դուրս գալ Docker հանգույցից:
Քայլ 2: Docker Overhead
Docker- ը ավելացրեց մեկ վիրտուալացման շերտ, որի վերին մասը մտահոգիչ է: Ես շատ չեմ փորձարկել Docker- ի գլխավերևի մասին: Google- ի արդյունքների մեծ մասը պնդում է, որ շատ ցածր է ընդհանուր ծախսերը, և ես գտա այս փաստաթուղթը որոշ հարակից հետազոտությունների մասին.
domino.research.ibm.com/library/cyberdig.n…
Քայլ 3: Տեղադրեք Docker- ը
Ուղղակի գործարկել.
curl -sSL https://get.docker.com | շ
Հղում ՝
www.raspberrypi.org/blog/docker-comes-to-…
docs.docker.com/get-started/
Քայլ 4. Docker Image- ի կառուցում
Խնդրում ենք գտնել նավահանգստի պատկերի կառուցման պաշտոնական ուղեցույցը.
docs.docker.com/get-started/part2/
Ես ունեմ 2 նախագիծ, որոնք օգտագործում են Docker- ը, դուք կարող եք գտնել Dockerfile- ը որպես տեղեկանք.
BanateCAD- ը պահանջում է Lua- ի գործարկման ժամանակ և որոշ լրացուցիչ Lua գրադարաններ: Միայն Lua 5.1 -ը կարող է համատեղելի բոլոր պահանջվող Lua գրադարանների հետ, բայց դա 2006 թ. Արտադրանքն է: Debian- ի վերջին բաշխումը, որը կարող է հաջողություն ստեղծել Lua 5.1 -ում, Jessie- ն է: Այսպիսով, ես կառուցեցի Lua 5.1 միջավայր Docker Image ՝ այն գործարկելու համար:
github.com/moononournation/BanateCAD/tree/…
OpenCV- ն ակտիվորեն զարգացող նախագիծ է, աղբյուրի կոդը կախված է վերջին գրադարաններից և կազմողից: Այսպիսով, շատ մեծ հավանականություն կա կառուցել ձախողված, գրադարանների մեթոդի ստորագրություն, կազմողի տարբերակ, կախվածության հակամարտություն… Ես կցանկանայի օգտագործել opencv4nodejs- ը ՝ պարզ ծրագիր ստեղծելու և վերջին գործառույթները չպահանջելու համար: Այսպիսով, երբ ես գտա opencv4nodejs հաջողություն ստեղծելու միջոց, ես կցանկանայի այն սառեցնել Docker Image- ի վրա և կատարել իմ իրական դիմումի կոդավորումը:
github.com/moononournation/face-aware-phot…
Քայլ 5. Developmentարգացման արագություն ընդդեմ պատկերի չափի
Դուք կարող եք գտնել, որ իմ face-aware-photo-osd նախագիծը ունի Dockfile- ի 2 տարբերակ.
github.com/moononournation/face-aware-phot…
Developmentարգացման ընթացքում ես սիրում եմ պառակտված RUN հրամանը հնարավորինս փոքր և կազմակերպում եմ ամենայն հավանականությամբ RUN հրամանը վերջին քայլին փոխելու հնարավորություն: Այսպիսով, զարգացման յուրաքանչյուր փոփոխության համար ես կարող եմ հնարավորինս օգտագործել նախորդ կառուցված շերտը և խնայել կառուցման արագությունը:
Ի հակադրություն, ես կհամատեղեմ բոլոր RUN հրամանները մեկում ՝ թողարկումից առաջ: ավելի փոքր շերտը կարող է շատ նվազեցնել Docker Image- ի չափը: Իմ դեմքով տեղյակ-լուսանկար-օսդ նախագիծը, որպես օրինակ, այն կարող է կրճատել ավելի քան 100 ՄԲ չափ:
Քայլ 6: Multi Arch Images
Ինչպես արդեն նշվեց, RPi- ն չի ձգտում մշակման հզորությանը: Օգտագործեք RPi build Docker պատկերը կարող է լավ ընտրություն չլինել, հատկապես, երբ ձեր միակ RPi- ն այլ նախագծեր է իրականացնում:
Օգտագործեք x86 համակարգիչ, որը կարող է օգնել ձեզ կառուցել Docker Image- ը: Մանրամասները գտեք այստեղ ՝
www.docker.com/blog/multi-arch-images/
պարզ 2 հրամանները կարող են զուգահեռ կառուցել x86 և ARM Docker Image:
docker buildx create -use
docker buildx build --platform linux/amd64, linux/arm -t moononournation/debian-imagemagick-lua-meshlab: 1.0.1-հրում.
Multi Arch- ը կարող է կառուցել բազմապլատֆորմային պատկեր նույն Docker պատկերի պիտակով, այնպես որ ձեր նախագիծը կարող է անխափան աշխատել տարբեր մեքենաներում: օրինակ
docker run -it moononournation/debian-imagemagick-lua-meshlab: 1.0.1
Անկախ նրանից, որ դուք գործարկում եք վերը նշված հրամանը RPi- ով կամ ձեր x86 համակարգչով, կարող եք ստանալ Lua- ի գործարկման միջավայր:
Քայլ 7: Շնորհավոր RPi:
Այժմ դուք կարող եք ավելի հեշտությամբ զարգացնել և կիսել ձեր RPi նախագիծը:
Խորհուրդ ենք տալիս:
Ստեղծեք հարմարեցված քարտեզներ ձեր Garmin GPS- ի համար. 8 քայլ (նկարներով)
Ստեղծեք հարմարեցված քարտեզներ ձեր Garmin GPS- ի համար. Եթե ունեք Garmin GPS, որը նախատեսված է արշավի և այլ բացօթյա գործունեության համար (ներառյալ GPSMAP, eTrex, Colorado, Dakota, Oregon և Montana շարքերը, ի թիվս մի քանի ուրիշների), ապա պարտադիր չէ բավարարվեք մերկ ոսկորների քարտեզներով, որոնք նախապես բեռնված էին դրա վրա: Ե
Ստեղծեք Ms Access տվյալների շտեմարանի ծրագրակազմ ՝ ձեր ընկերությունում աշխատավարձ պատրաստելու համար. 6 քայլ
Ստեղծեք Ms Access տվյալների բազայի ծրագրակազմ ՝ ձեր աշխատավարձը պատրաստելու համար. Ես ձեզ կարճ ցուցում կտամ ՝ MS մուտքի միջոցով աշխատավարձերի համակարգ ստեղծելու համար ՝ ամսական աշխատավարձեր գեներացնելու և դրանով հեշտությամբ տպելու աշխատավարձի թերթիկներ: Այս կերպ Դուք կարող եք յուրաքանչյուր ամսվա աշխատավարձի մանրամասների գրառումները պահել տվյալների շտեմարանում և կարող եք ուշ խմբագրել կամ վերանայել
Ստեղծեք ձեր սեփական մենամարտի սկավառակները `մարտական ասպարեզում օգտագործելու համար. 4 քայլ
Ստեղծեք ձեր սեփական մենամարտի սկավառակները ՝ մարտական արենայում օգտագործելու համար. Որքա՞ն հիանալի կլիներ մի արարած կանչել ՝ օգտագործելով քարտերի տախտակամած, այնուհետև նրանց ստիպել այն դուրս բերել ինչ -որ հոլոգրաֆիկ մարտական ասպարեզում: Այստեղ ես կանցնեմ ժամը
Ստեղծեք անվտանգ գոտի Android/IOS/WIN10- ի համար ՝ ապակողպված մնալու համար. 6 քայլ
Ստեղծեք անվտանգ գոտի ՝ Android/IOS/WIN10- ի համար ՝ ապակողպված մնալու համար. Այս հոդվածում մենք ցանկանում ենք ստեղծել հիանալի սարք, որը կարող է անվտանգ գոտի դարձնել ձեր սարքերի ապակողպման համար: Այս նախագծի ավարտին դուք
Ստեղծեք Raspberry Pi- ի քերծվածքներից ՝ Arduino- ի տվյալները մուտքագրելու համար. 5 քայլ
Set up From Scratch a Raspberry Pi- ն Arduino- ից տվյալներ մուտքագրելու համար. Այս ձեռնարկը նրանց համար է, ովքեր չունեն նոր սարքաշարի կամ ծրագրաշարի տեղադրման փորձ, առավել եւս Python կամ Linux: Թույլ տվեք ասել, որ դուք պատվիրել եք Raspberry Pi (RPi) SD- ով քարտ (առնվազն 8 ԳԲ, ես օգտագործել եմ 16 ԳԲ, տիպ I) և սնուցման աղբյուր (5 Վ, առնվազն 2