Мазмуну:
- 1 -кадам: Эмне үчүн Докер?
- 2 -кадам: Docker Overhead
- 3 -кадам: Docker орнотуу
- 4 -кадам: Докердин сүрөтүн куруу
- 5 -кадам: Өнүктүрүү ылдамдыгы Vs Сүрөт өлчөмү
- 6 -кадам: Multi Arch Images
- 7 -кадам: бактылуу RPi
Video: Raspberry Pi үчүн Docker Image түзүү: 7 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:38
Бул көрсөтмөлөр Raspberry Pi үчүн Docker сүрөтүн кантип курууну көрсөтөт.
1 -кадам: Эмне үчүн Докер?
Сиз Raspberry Pi (RPi) менен көп нерселерди жасай аласыз, кичинекей веб -сервер, AI жардамчысы, робототехника … ж.
Сиз сынап көргүңүз келген көптөгөн долбоорлор, бирок оору чекиттери:
Курууга убакыт
RPi иштетүү кубаттуулугуна кызыкдар эмес жана SD/USB диск IO ылдамдыгын чектеген. Бардык көз карандылык пакетине apt install колдонуу үчүн бир саат талап кылынат, ал эми булакты курууга көбүрөөк саат талап кылынат. Өзгөчө AI менен байланышкан долбоорлор үчүн, аракет кылуу үчүн убакыттан көбүрөөк күтүү убактысы.
Version Conflict
Ар бир адам бир RPiде көптөгөн долбоорлорду сынап көрөт. Долбоорду сынап көрүп, башкасына өтүүнү кааласаңыз, көз карандылык китепканаларынын версиясы мурунку долбоорго карама -каршы келгендиктен, кээ бир түзүлүштөрү иштебей калышы мүмкүн. Кээ бир китепканалар бир нече жыл мурун өнүгүүсүн токтотуп, кээ бир эски китепканалардан көз каранды. Ал эми, активдүү долбоор акыркы китепканалардан көз каранды болгон. Эки долбоор тең бир эле SD/USB дискинде чогуу жашай албайт?
Сүрөттүн камдык көчүрмөсү
Кээ бир долбоорлор бирге боло албагандыктан, ар бир долбоордун сүрөтүн көз каранды кылуу үчүн көбүрөөк SD/USB дискти сатып алыңыз. Эгерде акча чектелбесе? Бирок бул файлды/сүрөттү башкаруунун кыйынчылыктарын жогорулатат, кээде сиз каалаган нерсени билүү үчүн SD/USB алмаштырууну жана жүктөөнү көп жолу талап кыласыз.
Бөлүшүү кыйын
Долбооруңузду куруп, булакты досторуңуз менен бөлүшкүңүз келгенде, досторуңуз куруунун ийгиликсиз түрмөгүн кайтарып алышы мүмкүн. Бөлүштүрүү/китепканалардын версиясы өтө эски же өтө жаңы, курулуш параметрлери жана кээ бир амалдар. Башкалардын көйгөйлөрүн чечүү үчүн убакытты колдонуу керек, бирок долбоордун өзүн колдобош керек.
Жогорудагы оору пункттары менин бул бир нече жылдагы тажрыйбам. Докер анын көбүнө жардам бере алат.
Docker алдын ала курулган ата -эненин сүрөтүн тандоодон баштайт. Мисалы debian: jessie-slim эски стабилдүү Debian жеңил салмактан башталат; түйүн: Node.js 10 орнотулган Debian жеңил салмак бөлүштүрүүдөн 10-buster-сымбаттуу башталышы. Алдын ала курулган сүрөт флешке көп убакытты үнөмдөөгө, жаңыртууларды алууга жана көз каранды китепканаларды орнотууга жардам берет. Ар бир долбоор ар кандай OS версиясынан, иштөө убактысынан жана китепканалар версиясынан башталышы мүмкүн. Өзүңүздүн жеке долбооруңузду иштеп чыккандан кийин, сиз Docker сүрөтүн докер хабына түртүп, баарына бөлүшө аласыз. Долбоордун бардык маалыматтарын ошол эле SD/USBде сактай аласыз (маалыматтар башка медиага дайыма камдык көрүшү керек). Жергиликтүү сактагычты үнөмдөө үчүн, сиз Docker сүрөтүн колдонбогондо дагы тазалай аласыз, каалаган убакта Docker хабынан кайра тарта аласыз.
2 -кадам: Docker Overhead
Докер виртуалдаштыруунун бир катмарын кошту, кошумча чыгымдар тынчсыздандырат. Мен Докердин кошумча чыгымы жөнүндө өтө көп сынаган жокмун. Көпчүлүк 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 -кадам: Докердин сүрөтүн куруу
Сураныч, докер сүрөтүн куруу боюнча расмий колдонмону табыңыз:
docs.docker.com/get-started/part2/
Менин Dockerди колдонгон 2 долбоорум бар, сиз Dockerfile шилтеме катары таба аласыз:
BanateCAD Lua иштөө убактысын жана Lua китепканаларын талап кылат. Луа 5.1 гана бардык талап кылынган Луа китепканаларына шайкеш келе алат, бирок ал 2006 -жылдын продукту. Lua 5.1 ийгилигин түзө турган акыркы Debian бөлүштүрүүсү - Джесси (Учурдагы Debian эски стабилдүү версиясы). Ошентип, мен аны иштетүү үчүн Lua 5.1 чөйрөсүн Docker Image курдум
github.com/moononournation/BanateCAD/tree/…
OpenCV - активдүү өнүгүп келе жаткан долбоор, баштапкы код акыркы китепканаларга жана компиляторго көз каранды. Ошентип, ийгиликсиз, китепканалар методунун колтамгасын, компилятордун версиясын, көз карандылык конфликтин куруунун эң жогорку мүмкүнчүлүгү … Мен жөнөкөй колдонмону жасоо үчүн opencv4nodejs колдонгум келет жана акыркы функцияларды талап кылбайт. Ошентип, мен opencv4nodejs ийгилигин куруунун жолун тапкандан кийин, аны Docker Imageге катырып, чыныгы колдонмо коддоомду кылгым келет
github.com/moononournation/face-aware-phot…
5 -кадам: Өнүктүрүү ылдамдыгы Vs Сүрөт өлчөмү
Сиз менин жүзүмө тааныш-фото-osd долбоорумда Dockfileдин 2 версиясы бар экенин таба аласыз:
github.com/moononournation/face-aware-phot…
Иштеп жатканда мага RUN командасын мүмкүн болушунча кичине жактырам жана RUN командасын акыркы кадамга өзгөртүүгө аракет кылам. Ошентип, өнүгүүнү өзгөртүү үчүн ар бир курулуш үчүн, мен мурунку курулган катмарды мүмкүн болушунча колдонуп, курулуш ылдамдыгын үнөмдөй алам.
Тескерисинче, мен чыгаруунун алдында бардык RUN буйруктарын бириктирем. азыраак катмар Докер сүрөтүнүн көлөмүн бир топ кыскартат. Менин жүзүмө маалым болгон фото-osd долбоорум мисал катары 100 МБдан ашык өлчөмдү азайтат.
6 -кадам: Multi Arch Images
Жогоруда айтылгандай, RPi иштетүү кубаттуулугуна кызыкдар эмес. RPi куруу 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 --push.
Multi Arch бир эле Docker сүрөт теги менен көп платформа сүрөтүн кура алат, ошондуктан сиздин проект башка машинада үзгүлтүксүз иштей алат. мис.
docker run -it moononournation/debian-imagemagick-lua-meshlab: 1.0.1
Жогорудагы буйрукту RPiде же x86 компьютериңизде иштетсеңиз да, Lua иштөө чөйрөсүн ала аласыз.
7 -кадам: бактылуу RPi
Сиз азыр RPi долбооруңузду оңой эле иштеп чыгып, бөлүшө аласыз!
Сунушталууда:
Microsoft Visioдо Java үчүн UML кантип түзүү керек: 4 кадам
Microsoft Visioдо Java үчүн UML кантип түзүү керек: Башында UML түзүү бир аз коркутуучу көрүнүшү мүмкүн. Белгилөөнүн көптөгөн татаал стили бар, жана UMLди окула турган жана так форматтоо үчүн жакшы ресурстар жоктой сезилиши мүмкүн. Бирок, Microsoft Visio UML түзүүнү түзөт
Транзистордук радиаторду түзүү үчүн ЭЭМди кайра колдонуу: 7 кадам
Транзистордук муздаткычты түзүү үчүн компьютер жылыткычын кайра колдонуу: Бир аз мурун мен Raspberry Pi 3s менен ойноп сатып алдым. Алар радиаторсуз келгендиктен, кээ бирөөлөр үчүн базарда элем. Мен тез Google издөө жүргүздүм жана бул Instructable (Raspberry Pi Heat Sink) менен тааныштым - бул идеяны четке каккандан кийин болду
Ардуинону IP тармагына туташтыруу үчүн өз WIFI шлюзун кантип түзүү керек?: 11 кадам (сүрөттөр менен)
Ардуинону IP тармагына туташтыруу үчүн өзүңүздүн WIFI шлюзуңузду кантип түзүү керек?: Көптөр ойлогондой, сиз Arduino үйдү автоматташтыруу жана роботтоштуруу үчүн эң жакшы чечим деп ойлойсуз! Мен роботтун үстүндө иштеп жатам, ал ар дайым иштеген сервер менен туташып турушу керек
Кантип портативдүү акылдуу күзгү түзүү/куту айкалышын түзүү: 8 кадам
Кантип портативдүү акылдуу күзгү түзүү/куту айкалыштыруу: Дэвистеги капстоюнум үчүн акыркы долбоор катары & Элкинс колледжи, мен порт катары иштей турган чоң күзгү жана малина пи жана сыйкырдуу күзгү программалык платформасын колдонуу менен бирге саякат кутусун иштеп чыгууну чечтим
Түсү жана тунуктугу үчүн Image Testing: 8 кадам
Түс жана Түшүнүк үчүн Сүрөттү Тестирлөө: Мен муну мен үчүн инструктивдүү кылдым; Менин көрсөтмөлөрүмдү жакшыртуу үчүн, бирок мен тапканым менен бөлүшкүм келет. Мен Instructabesке жүктөгөн кээ бир сүрөттөрдүн кемчиликсиз, башка сүрөттөрдүн тунуктугун, бир аз түссүз же бүдөмүк экенин байкадым. Билбейм