Table des matières:
- Étape 1: Pourquoi Docker ?
- Étape 2: Docker Overhead
- Étape 3: Installer Docker
- Étape 4: Création d'une image Docker
- Étape 5: Vitesse de construction du développement par rapport à la taille de l'image
- Étape 6: Images multi-arcs
- Étape 7: Bon RPi
Vidéo: Créer une image Docker pour Raspberry Pi : 7 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:06
Ces instructables montrent comment créer une image Docker pour Raspberry Pi.
Étape 1: Pourquoi Docker ?
Vous pouvez utiliser Raspberry Pi (RPi) pour faire beaucoup de choses, un petit serveur Web, un assistant IA, la robotique… etc.
De nombreux projets que vous voulez essayer, mais les points faibles sont:
Il est temps de construire
RPi n'aime pas la puissance de traitement et le lecteur SD/USB a limité la vitesse d'E/S. L'utilisation d'apt install tous les packages de dépendances nécessite une heure et la construction de la source nécessite plus d'heures. Surtout pour les projets liés à l'IA, le temps d'attendre plus que le temps d'essayer.
Conflit de versions
Tout le monde essaie de nombreux projets dans un seul RPi. Lorsque vous avez essayé un projet et que vous souhaitez passer à un autre, vous pouvez rencontrer des échecs de construction causés par un conflit de version des bibliothèques de dépendances avec le projet précédent. Certaines bibliothèques cessent de se développer il y a quelques années et dépendent de très vieilles bibliothèques. En revanche, le projet actif dépendait des dernières bibliothèques. Les deux projets ne peuvent pas coexister sur la même clé SD/USB ?.
Sauvegarde d'images
Étant donné que certains projets ne peuvent pas coexister, il suffit d'acheter plus de lecteur SD/USB pour que chaque image de projet dépende. Si l'argent n'est pas limité?. Mais cela augmente les difficultés de gestion des fichiers/images, parfois vous avez besoin d'échanger SD/USB et de démarrer plusieurs fois pour savoir ce que vous voulez.
Difficile à partager
Lorsque vous avez construit votre projet et que vous souhaitez partager la source avec des amis, vos amis peuvent recevoir un retour d'information sur l'échec de la construction. Version distribution/bibliothèques trop ancienne ou trop récente, paramètres de construction et quelques astuces. Vous devez passer du temps à résoudre les problèmes de construction des autres, mais pas à soutenir le projet lui-même.
Les points douloureux ci-dessus sont mon expérience au cours de ces quelques années. Docker peut vous aider dans la plupart des cas.
Docker démarre la construction à partir de la sélection d'une image parent prédéfinie. Par exemple. debian:jessie-slim démarre à partir d'une ancienne distribution Debian stable et légère; node:10-buster-slim démarre à partir de la distribution légère de Debian avec Node.js 10 installé. L'image prédéfinie peut faire gagner beaucoup de temps pour flasher l'image, obtenir la mise à jour et installer les bibliothèques dépendantes. Chaque projet peut démarrer à partir d'une version du système d'exploitation, d'une version d'exécution et d'une version des bibliothèques différentes. Lorsque vous avez terminé de développer votre propre projet, vous pouvez transférer l'image Docker vers Docker Hub et la partager avec tout le monde. Vous pouvez conserver toutes les données du projet sur la même carte SD/USB (les données doivent être sauvegardées régulièrement sur d'autres supports). Pour économiser le stockage local, vous pouvez même nettoyer l'image Docker lorsqu'elle n'est pas utilisée, chaque fois que vous pouvez à nouveau extraire du hub Docker.
Étape 2: Docker Overhead
Docker a ajouté une couche de virtualisation, la surcharge est un problème. Je n'ai pas trop testé sur la surcharge Docker. La plupart des résultats recherchés sur Google réclament des frais généraux très faibles et j'ai trouvé ce document sur certaines recherches connexes:
domino.research.ibm.com/library/cyberdig.n…
Étape 3: Installer Docker
Exécutez simplement:
curl -sSL https://get.docker.com | sh
Réf.:
www.raspberrypi.org/blog/docker-comes-to-…
docs.docker.com/get-started/
Étape 4: Création d'une image Docker
Veuillez trouver le guide officiel sur la création d'une image Docker:
docs.docker.com/get-started/part2/
J'ai 2 projets utilisant Docker, vous pouvez trouver le Dockerfile comme référence:
BanateCAD nécessite le runtime Lua et quelques bibliothèques Lua supplémentaires. Seule Lua 5.1 peut être compatible avec toutes les bibliothèques Lua requises, mais c'est le produit de 2006. La dernière distribution Debian qui peut construire le succès de Lua 5.1 est Jessie (la version avant l'ancienne Debian actuelle). J'ai donc construit un environnement Docker Image Lua 5.1 pour l'exécuter
github.com/moononournation/BanateCAD/tree/…
OpenCV est un projet en développement actif, le code source dépend des dernières bibliothèques et compilateurs. Il est donc très probable que la construction ait échoué, signature de méthode de bibliothèque, version du compilateur, conflit de dépendance… J'aimerais utiliser opencv4nodejs pour créer une application simple et ne nécessite pas les dernières fonctionnalités. Donc, quand j'ai trouvé un moyen de créer le succès d'opencv4nodejs, j'aimerais le congeler dans une image Docker et faire mon codage d'application réel
github.com/moononournation/face-aware-phot…
Étape 5: Vitesse de construction du développement par rapport à la taille de l'image
Vous pouvez trouver que mon projet face-aware-photo-osd a 2 versions de Dockfile:
github.com/moononournation/face-aware-phot…
Pendant le développement, j'aime diviser la commande RUN aussi petite que possible et organiser le plus probablement pour changer la commande RUN à la dernière étape. Ainsi, pour chaque changement de build pour le développement, je peux utiliser autant que possible la couche construite précédente et économiser beaucoup de vitesse de construction.
En revanche, je combinerai toutes les commandes RUN en une seule avant la publication. une couche moindre peut réduire considérablement la taille de l'image Docker. Mon projet face-aware-photo-osd, par exemple, peut réduire la taille de plus de 100 Mo.
Étape 6: Images multi-arcs
Comme mentionné précédemment, RPi n'aime pas la puissance de traitement. Utiliser l'image Docker de build RPi peut ne pas être un bon choix, surtout lorsque votre seul RPi exécute un autre projet.
Utiliser un ordinateur x86 peut également vous aider à créer l'image Docker, veuillez trouver plus de détails ici:
www.docker.com/blog/multi-arch-images/
2 commandes simples peuvent créer x86 et ARM Docker Image en parallèle:
docker buildx create --use
docker buildx build --platform linux/amd64, linux/arm -t moononournation/debian-imagemagick-lua-meshlab:1.0.1 --push.
Multi Arch peut créer une image multiplateforme avec la même balise d'image Docker, afin que votre projet puisse s'exécuter de manière transparente sur différentes machines. par exemple.
docker exécuter -it moononournation/debian-imagemagick-lua-meshlab:1.0.1
Peu importe que vous exécutiez la commande ci-dessus sur RPi ou votre ordinateur x86, vous pouvez obtenir un environnement d'exécution Lua.
Étape 7: Bon RPi
Vous pouvez désormais développer et partager votre projet RPi plus facilement !
Conseillé:
Traitement d'image avec le Raspberry Pi : Installation d'OpenCV et séparation des couleurs d'image : 4 étapes
Traitement d'image avec le Raspberry Pi : Installation d'OpenCV et de la séparation des couleurs d'image : Cet article est le premier de plusieurs tutoriels de traitement d'image à suivre. Nous regardons de plus près les pixels qui composent une image, apprenons à installer OpenCV sur le Raspberry Pi et nous écrivons également des scripts de test pour capturer une image et aussi c
Transformer une image en une sculpture de tige de goujon : 7 étapes (avec photos)
Transformer une image en une sculpture de tige de goujon : Dans ce projet, j'ai converti l'image d'une montgolfière en une sculpture de tige de goujon. La structure finale est une transformation des informations numériques stockées dans une photo en un objet 3D physique. J'ai construit la sculpture pour aider à visualiser comment l'image
Lumière réactive musicale--Comment créer une lumière réactive musicale super simple pour créer un bureau génial.: 5 étapes (avec images)
Lumière réactive musicale || Comment faire de la lumière réactive musicale super simple pour rendre le bureau génial.: Hé quoi de neuf les gars, aujourd'hui, nous allons construire un projet très intéressant. la basse qui est en fait un signal audio basse fréquence. C'est très simple à construire. Nous allons
Comment créer une image complètement focalisée à partir de plusieurs images partiellement focalisées : 4 étapes
Comment créer une image complètement focalisée à partir de plusieurs images partiellement focalisées : Je suggère d'utiliser le logiciel Helicon Focus. Les versions Windows et Mac sont disponibles sur le site de d-Stidio. Le programme est conçu pour la macrophotographie, la microphotographie et la photographie de paysage hyperfocale afin de résoudre le problème de faible profondeur de champ.Hel
Créer des motifs en mosaïque pour l'image d'arrière-plan du site Web : 8 étapes
Créer des modèles de mosaïque pour l'image d'arrière-plan du site Web : Voici une méthode simple et directe (je pense) pour créer des images qui peuvent être carrelées sans avoir l'air trop "grille". Ce didacticiel utilise Inkscape (www.inkscape.org), un éditeur de graphiques vectoriels open source. J'imagine que cette méthode peut