Съдържание:
- Стъпка 1: Защо Docker?
- Стъпка 2: Docker Overhead
- Стъпка 3: Инсталирайте Docker
- Стъпка 4: Изграждане на изображение на Docker
- Стъпка 5: Разработка Скорост на изграждане Vs Размер на изображението
- Стъпка 6: Multi Arch изображения
- Стъпка 7: Честит RPi
Видео: Изградете изображение на Docker за Raspberry Pi: 7 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
Тези инструкции показват как да се изгради 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 Размер на изображението
Може да откриете, че моят проект за лице-запознат-photo-osd има 2 версии на Dockfile:
github.com/moononournation/face-aware-phot…
Докато разработвам, харесвам възможно най -малка команда за RUN и подреждам най -вероятно да променя командата RUN до последната стъпка. Така че за всяка компилация за промяна в развитието, мога да използвам предишния изграден слой възможно най -много и да спестя голяма скорост на изграждане.
За разлика от това, ще комбинирам всички RUN команди в една преди пускането. по -малкият слой може значително да намали размера на изображението на Docker. Моят проект за снимка-osd, който осъзнава лицето, като пример, той може да намали размера на повече от 100 MB.
Стъпка 6: 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 проект по -лесно!
Препоръчано:
Как: Инсталиране на Raspberry PI 4 Headless (VNC) с Rpi-изображение и снимки: 7 стъпки (със снимки)
Как: Инсталиране на Raspberry PI 4 Headless (VNC) с Rpi-imager и Pictures: Планирам да използвам този Rapsberry PI в куп забавни проекти в моя блог. Чувствайте се свободни да го проверите. Исках да се върна към използването на моя Raspberry PI, но нямах клавиатура или мишка на новото ми място. Мина известно време, откакто инсталирах Raspberry
Как да-МОДУЛ ЗА ДИСПЛЕЙ НА E-INK ЕЛЕКТРОННА ХАРТИЯ-Част 2 - Импортиране на персонализирано изображение: 4 стъпки
Как да-МОДУЛ ЗА ДИСПЛЕЙ НА E-INK ЕЛЕКТРОННА ХАРТИЯ-Част 2 | Импортиране на персонализирано изображение: В този урок за част 2 от Как да-МОДУЛ ЗА ДИСПЛЕЙ НА E-INK Е-ХАРТИЯ | Импортиране на персонализирано изображение, ще споделя с вас как да импортирате изображението, което харесвате, и да го покажете на модула за показване на електронно мастило. Много е просто с помощта на няколко s
Заснемане на изображение с задействано движение и имейл: 6 стъпки
Заснемане на изображения и електронна поща, задействани от движение: Ние надграждаме предишните проекти на ESP32-CAM и изграждаме система за заснемане на движение, която също изпраща имейл с изображението като прикачен файл. Тази конструкция използва платката ESP32-CAM заедно с PIR сензорен модул, базиран на AM312
Превърнете 2D изображение в 3D модел: 7 стъпки (със снимки)
Превърнете 2D изображение в 3D модел: Искали ли сте някога да направите 2D изображение и да го превърнете в 3D модел? Тази инструкция ще ви покаже как с безплатен скрипт и Fusion 360. Какво ще ви е необходимо Fusion 360 (Mac / Windows) Какво ще правите Изтеглете и инсталирайте Fusion 360. Щракнете тук, за да се регистрирате безплатно
Контролиран от Raspberry Pi контрол на стайната температура с изход за изображение Gnuplot и възможност за предупреждение по имейл: 7 стъпки
Контролиран от Raspberry Pi контрол на стайната температура с Gnuplot извеждане на изображения и възможност за предупреждение по имейл: Там, където работя, има много важна стая, в която се помещават много компютри. Температурата на околната среда на тази стая трябва да бъде много ниска, за да се оптимизират работата на тези системи. Бях помолен да измисля система за мониторинг, която има способността да