Съдържание:

Изградете изображение на Docker за Raspberry Pi: 7 стъпки
Изградете изображение на Docker за Raspberry Pi: 7 стъпки

Видео: Изградете изображение на Docker за Raspberry Pi: 7 стъпки

Видео: Изградете изображение на Docker за Raspberry Pi: 7 стъпки
Видео: Contain Yourself: An Intro to Docker and Containers by Nicola Kabar and Mano Marks 2024, Ноември
Anonim
Изградете изображение на Docker за Raspberry Pi
Изградете изображение на Docker за Raspberry Pi

Тези инструкции показват как да се изгради Docker изображение за Raspberry Pi.

Стъпка 1: Защо Docker?

Можете да използвате Raspberry Pi (RPi) за много неща, малък уеб сървър, AI помощник, роботика … и т.н.

Много проекти, които искате да изпробвате, но болезнените точки са:

Време за изграждане

RPi не се интересува от процесорната мощност, а SD/USB устройството ограничава скоростта на IO. Използвайте apt install all зависимост пакет изисква час и изграждане на източника изисква повече часове. Специално за проекти, свързани с ИИ, време е да чакате повече от време, за да опитате.

Конфликт на версия

Всеки изпробва много проекти в едно RPi. Когато сте опитали проект и бихте искали да преминете към друг, може да откриете грешка при изграждането, причинена от версията на библиотеките на зависимости в конфликт с предишния проект. Някои библиотеки спират да се развиват преди няколко години и зависят от някои много стари библиотеки. За разлика от това, активният проект зависи от най -новите библиотеки. И двата проекта не могат да съществуват съвместно в едно и също SD/USB устройство ?.

Архивиране на изображения

Тъй като някои проекти не могат да съществуват съвместно, просто купувайте повече SD/USB устройство, за да поддържате изображението на всеки проект зависим. Ако парите не са ограничени ?. Но това увеличава трудностите при управлението на файлове/изображения, понякога се изисква смяна на SD/USB и стартиране много пъти, за да разберете какво искате.

Трудно за споделяне

Когато изграждате проекта си и искате да споделите източника с приятели, приятелите ви може да получат обратно неуспешната емисия на компилацията. Версията за разпространение/библиотеки е твърде стара или твърде нова, параметри за изграждане и някои трикове. Трябва да изразходвате времето, за да решите други проблеми при изграждането, но да не подкрепите самия проект.

Горните точки на болка са моят опит през тези няколко години. Docker може да помогне в повечето случаи.

Docker започва изграждането от избор на предварително изградено родителско изображение. Напр. debian: jessie-slim начало от старо стабилно разпределение на Debian с леко тегло; възел: 10-buster-тънък старт от разпределението на леко тегло на Debian с инсталиран Node.js 10. Предварително създаденото изображение може да спести много време за флаш изображение, актуализиране и инсталиране на зависими библиотеки. Всеки проект може да започне от различна версия на ОС, версия по време на изпълнение и версия на библиотеки. Когато приключите с разработването на собствен проект, можете да преместите образа на Docker в докер център и да го споделите с всички. Можете да съхранявате всички данни за проекта на една и съща 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

Моля, намерете официалното ръководство за изграждане на изображение на docker:

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

Имам 2 проекта, използващи Docker, може да намерите Dockerfile като справка:

BanateCAD изисква изпълнение на Lua и някои допълнителни библиотеки Lua. Само Lua 5.1 може да бъде съвместим с всички необходими библиотеки на Lua, но е продукт от 2006 г. Най -новата дистрибуция на Debian, която може да постигне успех на Lua 5.1, е Jessie (Версията преди настоящата стара стабилна Debian). Затова създадох Docker Image за среда на Lua 5.1, за да го стартирам

github.com/moononournation/BanateCAD/tree/…

OpenCV е активно развиващ се проект, изходният код зависи от най -новите библиотеки и компилатора. Така че има много голям шанс да се изгради неуспешно, подпис на библиотечен метод, версия на компилатор, конфликт на зависимости … Бих искал да използвам opencv4nodejs, за да направя просто приложение и не изисквам най -новите функции. Така че, когато намерих начин да постигна успех на opencv4nodejs, бих искал да го замразя в Docker Image и да направя действителното си кодиране на приложение

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

Стъпка 5: Разработка Скорост на изграждане Vs Размер на изображението

Развитие Скорост на изграждане Vs Размер на изображението
Развитие Скорост на изграждане Vs Размер на изображението
Развитие Скорост на изграждане Vs Размер на изображението
Развитие Скорост на изграждане Vs Размер на изображението

Може да откриете, че моят проект за лице-запознат-photo-osd има 2 версии на Dockfile:

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

Докато разработвам, харесвам възможно най -малка команда за RUN и подреждам най -вероятно да променя командата RUN до последната стъпка. Така че за всяка компилация за промяна в развитието, мога да използвам предишния изграден слой възможно най -много и да спестя голяма скорост на изграждане.

За разлика от това, ще комбинирам всички RUN команди в една преди пускането. по -малкият слой може значително да намали размера на изображението на Docker. Моят проект за снимка-osd, който осъзнава лицето, като пример, той може да намали размера на повече от 100 MB.

Стъпка 6: Multi Arch изображения

Multi Arch изображения
Multi Arch изображения

Както бе споменато по -рано, RPi не се интересува от процесорна мощ. Използването на RPi build Docker изображение може да не е добър избор, особено когато единственият ви RPi изпълнява други проекти.

Използването на x86 компютър също може да ви помогне да изградите образа на Docker, моля, намерете повече подробности тук:

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 проект по -лесно!

Препоръчано: