Πίνακας περιεχομένων:
- Βήμα 1: Γιατί Docker;
- Βήμα 2: Docker Overhead
- Βήμα 3: Εγκαταστήστε το Docker
- Βήμα 4: Δημιουργία εικόνας Docker
- Βήμα 5: Ταχύτητα κατασκευής ανάπτυξης έναντι μεγέθους εικόνας
- Βήμα 6: Εικόνες Multi Arch
- Βήμα 7: Καλό RPi
Βίντεο: Δημιουργία εικόνας Docker για Raspberry Pi: 7 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:32
Αυτές οι οδηγίες δείχνουν πώς να δημιουργήσετε μια εικόνα Docker για το Raspberry Pi.
Βήμα 1: Γιατί Docker;
Μπορείτε να χρησιμοποιήσετε το Raspberry Pi (RPi) για πολλά πράγματα, μικροσκοπικό διακομιστή ιστού, βοηθό AI, Robotics… κ.λπ.
Πολλά έργα που θέλετε να δοκιμάσετε, αλλά τα σημεία πόνου είναι:
Timeρα για κατασκευή
Το RPi δεν ενδιαφέρεται για επεξεργαστική ισχύ και η μονάδα SD/USB περιόρισε την ταχύτητα IO. Το πακέτο apt install all dependency απαιτεί μία ώρα και η δημιουργία της πηγής απαιτεί περισσότερες ώρες. Ειδικά για έργα που σχετίζονται με AI, χρόνος για να περιμένετε περισσότερο από χρόνο για να προσπαθήσετε.
Σύγκρουση έκδοσης
Όλοι δοκιμάζουν πολλά έργα σε ένα RPi. Όταν έχετε δοκιμάσει ένα έργο και θέλετε να μεταβείτε σε άλλο, ενδέχεται να βρείτε κάποια αποτυχία κατασκευής που προκαλείται από σύγκρουση έκδοσης βιβλιοθηκών εξάρτησης με προηγούμενο έργο. Ορισμένες βιβλιοθήκες σταματούν να αναπτύσσονται πριν από μερικά χρόνια και εξαρτώνται από μερικές πολύ παλιές βιβλιοθήκες. Αντίθετα, το ενεργό έργο εξαρτιόταν από τις πιο πρόσφατες βιβλιοθήκες. Και τα δύο έργα δεν μπορούν να συνυπάρχουν στην ίδια μονάδα SD/USB;.
Δημιουργία αντιγράφων ασφαλείας εικόνας
Δεδομένου ότι ορισμένα έργα δεν μπορούν να συνυπάρχουν, απλώς αγοράστε περισσότερη μονάδα SD/USB για να διατηρήσετε την εξάρτηση κάθε εικόνας έργου. Εάν τα χρήματα δεν είναι περιορισμένα;. Αλλά αυξάνει τις δυσκολίες διαχείρισης αρχείων/εικόνων, μερικές φορές απαιτείτε εναλλαγή SD/USB και εκκίνηση πολλές φορές για να μάθετε τι θέλετε.
Δύσκολο να το μοιραστείτε
Όταν δημιουργήσατε το έργο σας και θέλετε να μοιραστείτε την πηγή με τους φίλους σας, οι φίλοι σας ενδέχεται να λάβουν την ανεπιτυχής ανατροφοδότηση. Έκδοση διανομής/βιβλιοθηκών πολύ παλιά ή πολύ νέα, δημιουργώντας παραμέτρους και ορισμένα κόλπα. Χρειάζεται να εξαντλήσετε το χρόνο για να λύσετε άλλα προβλήματα, αλλά να μην υποστηρίξετε το ίδιο το έργο.
Τα παραπάνω σημεία πόνου είναι η εμπειρία μου σε αυτά τα λίγα χρόνια. Το Docker μπορεί να βοηθήσει τα περισσότερα.
Το Docker ξεκινά την κατασκευή επιλέγοντας μια προκατασκευασμένη γονική εικόνα. Π.χ. debian: jessie-slim ξεκίνημα από μια παλιά σταθερή κατανομή ελαφρού βάρους Debian. κόμβος: 10-buster-slim start από την κατανομή ελαφρού βάρους Debian με εγκατεστημένο το Node.js 10. Η προκατασκευασμένη εικόνα μπορεί να εξοικονομήσει πολύ χρόνο για να αναβοσβήνει η εικόνα, να λαμβάνει ενημερώσεις και να εγκαθιστά βιβλιοθήκες που εξαρτώνται. Κάθε έργο μπορεί να ξεκινήσει από διαφορετική έκδοση λειτουργικού συστήματος, έκδοση χρόνου εκτέλεσης και έκδοση βιβλιοθηκών. Όταν ολοκληρώσετε την ανάπτυξη του δικού σας έργου, μπορείτε να σπρώξετε την εικόνα Docker σε διανομέα 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 | SH
Αναφορά.:
www.raspberrypi.org/blog/docker-comes-to-…
docs.docker.com/get-started/
Βήμα 4: Δημιουργία εικόνας Docker
Παρακαλώ βρείτε τον επίσημο οδηγό για την κατασκευή του docker image:
docs.docker.com/get-started/part2/
Έχω 2 έργα που χρησιμοποιούν το Docker, μπορείτε να βρείτε το Dockerfile ως αναφορά:
Το BanateCAD απαιτεί χρόνο εκτέλεσης Lua και μερικές πρόσθετες βιβλιοθήκες Lua. Μόνο το Lua 5.1 μπορεί να είναι συμβατό με όλες τις απαιτούμενες βιβλιοθήκες Lua, αλλά είναι το προϊόν του 2006. Η τελευταία διανομή Debian που μπορεί να δημιουργήσει επιτυχία στο Lua 5.1 είναι η Jessie (Η έκδοση πριν από τον παλιό σταθερό Debian). Έτσι, έφτιαξα ένα περιβάλλον περιβάλλοντος Lua 5.1 Docker Image για να το τρέξω
github.com/moononournation/BanateCAD/tree/…
Το OpenCV είναι ένα ενεργά αναπτυσσόμενο έργο, ο πηγαίος κώδικας εξαρτάται από τις τελευταίες βιβλιοθήκες και τον μεταγλωττιστή. Επομένως, είναι πολύ μεγάλη η πιθανότητα κατασκευής αποτυχημένων, υπογραφή μεθόδου βιβλιοθηκών, έκδοση μεταγλωττιστή, σύγκρουση εξάρτησης… Θα ήθελα να χρησιμοποιήσω το opencv4nodejs για να κάνω μια απλή εφαρμογή και δεν απαιτούν τις πιο πρόσφατες δυνατότητες. Έτσι, όταν βρήκα έναν τρόπο για να δημιουργήσω την επιτυχία του opencv4nodejs, θα ήθελα να το παγώσω σε μια εικόνα Docker και να κάνω την πραγματική κωδικοποίηση της εφαρμογής μου
github.com/moononournation/face-aware-phot…
Βήμα 5: Ταχύτητα κατασκευής ανάπτυξης έναντι μεγέθους εικόνας
Μπορεί να διαπιστώσετε ότι το έργο face-aware-photo-osd μου έχει 2 εκδόσεις του Dockfile:
github.com/moononournation/face-aware-phot…
Κατά την ανάπτυξη, μου αρέσει η εντολή split RUN όσο το δυνατόν μικρότερη και οργανώνω το πιο πιθανό να αλλάξει την εντολή RUN στο τελευταίο βήμα. Έτσι, για κάθε κατασκευή για αλλαγή ανάπτυξης, μπορώ να χρησιμοποιήσω το προηγούμενο ενσωματωμένο επίπεδο όσο το δυνατόν περισσότερο και να εξοικονομήσω μεγάλη ταχύτητα κατασκευής.
Αντίθετα, θα συνδυάσω όλες τις εντολές RUN σε μία πριν από την κυκλοφορία. μικρότερο επίπεδο μπορεί να μειώσει πολύ το μέγεθος της εικόνας Docker. Το face-aware-photo-osd project μου, για παράδειγμα, μπορεί να μειώσει περισσότερα από 100 MB σε μέγεθος.
Βήμα 6: Εικόνες Multi Arch
Όπως αναφέρθηκε προηγουμένως, το RPi δεν ενδιαφέρεται για επεξεργαστική ισχύ. Η χρήση εικόνας Docker build RPi ενδέχεται να μην είναι καλή επιλογή, ειδικά όταν το μοναδικό σας 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 πιο εύκολα!
Συνιστάται:
Επεξεργασία εικόνας με το Raspberry Pi: Εγκατάσταση OpenCV & Διαχωρισμός χρώματος εικόνας: 4 βήματα
Επεξεργασία εικόνας με το Raspberry Pi: Εγκατάσταση OpenCV & Διαχωρισμός χρωμάτων εικόνας: Αυτή η ανάρτηση είναι η πρώτη από τα πολλά σεμινάρια επεξεργασίας εικόνας που θα ακολουθήσουν. Ρίχνουμε μια πιο προσεκτική ματιά στα εικονοστοιχεία που συνθέτουν μια εικόνα, μαθαίνουμε πώς να εγκαταστήσουμε το OpenCV στο Raspberry Pi και γράφουμε επίσης δοκιμαστικά σενάρια για τη λήψη μιας εικόνας, αλλά και
Δημιουργία προσαρμογέα Bluetooth Pt.2 (Δημιουργία συμβατού ηχείου): 16 βήματα
Δημιουργία προσαρμογέα Bluetooth Pt.2 (Δημιουργία συμβατού ηχείου): Σε αυτό το εκπαιδευτικό εγχειρίδιο, θα σας δείξω πώς να χρησιμοποιήσετε τον προσαρμογέα Bluetooth για να κάνετε συμβατό το παλιό ηχείο με Bluetooth. έναν προσαρμογέα Bluetooth " Σας προτείνω να το κάνετε πριν συνεχίσετε.C
Δημιουργία κινούμενης εικόνας 2D χρησιμοποιώντας Microsoft PowerPoint και IMovie .: 20 βήματα
Δημιουργία κινούμενης εικόνας 2D χρησιμοποιώντας Microsoft PowerPoint και IMovie .: Τι θα χρειαστείτε:- κανονικός φορητός υπολογιστής ή επιτραπέζιος υπολογιστής- Microsoft PowerPoint- iMovie ή εναλλακτικός δημιουργός ταινιών
Δημιουργία μικρών ρομπότ: Δημιουργία ενός ρομπότ μικρού κυβικού ίντσας Micro-Sumo και μικρότερο: 5 βήματα (με εικόνες)
Δημιουργία Μικρών Ρομπότ: Δημιουργία Ρομπότ Μικρού Σούμο και Μικρότερων Κυβικών ίντσας: Ακολουθούν μερικές λεπτομέρειες σχετικά με την κατασκευή μικροσκοπικών ρομπότ και κυκλωμάτων. Αυτό το διδακτικό θα καλύψει επίσης μερικές βασικές συμβουλές και τεχνικές που είναι χρήσιμες στην κατασκευή ρομπότ οποιουδήποτε μεγέθους. Για μένα, μία από τις μεγάλες προκλήσεις στα ηλεκτρονικά είναι να δούμε πόσο μικρό είναι ένα
Οδηγίες για τη δημιουργία συνημμένου σύνδεσης τεσσάρων ράβδων για υποπόδιο στο κέντρο: 9 βήματα (με εικόνες)
Οδηγίες για την κατασκευή συνημμένου σύνδεσης τεσσάρων ράβδων για υποπόδιο στο κέντρο: Οι ηλεκτρικές καρέκλες μεσαίας κίνησης (PWC) έχουν γίνει πιο δημοφιλείς τα τελευταία χρόνια. Ωστόσο, λόγω της τοποθέτησης των μπροστινών τροχών, τα παραδοσιακά πλαϊνά στηρίγματα ποδιών έχουν αντικατασταθεί από ένα ενιαίο κεντρικό υποπόδιο. Δυστυχώς, το κέντρο-mou