Isi kandungan:
- Langkah 1: Mengapa Docker?
- Langkah 2: Docker Overhead
- Langkah 3: Pasang Docker
- Langkah 4: Membina Imej Docker
- Langkah 5: Pembangunan Membangunkan Kelajuan Vs Gambar Ukuran
- Langkah 6: Imej Multi Arch
- Langkah 7: Selamat Hari RPi
Video: Bina Imej Docker untuk Raspberry Pi: 7 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
Instruksional ini menunjukkan cara membina Docker Image untuk Raspberry Pi.
Langkah 1: Mengapa Docker?
Anda boleh menggunakan Raspberry Pi (RPi) melakukan banyak perkara, pelayan web kecil, pembantu AI, Robotik … dll.
Banyak projek yang ingin anda cuba, tetapi masalahnya adalah:
Masa Untuk Membina
RPi tidak berminat untuk memproses kuasa, dan pemacu SD / USB menghadkan kelajuan IO. Gunakan apt semua pakej ketergantungan memerlukan satu jam dan membina sumber memerlukan lebih banyak jam. Terutama untuk projek yang berkaitan dengan AI, masa untuk menunggu lebih banyak daripada masa untuk mencuba.
Konflik Versi
Semua orang mencuba banyak projek dalam satu RPi. Apabila anda telah mencuba projek dan ingin beralih ke projek yang lain, anda mungkin mendapati beberapa binaan gagal disebabkan oleh versi pergantungan perpustakaan yang bertentangan dengan projek sebelumnya. Beberapa perpustakaan berhenti berkembang beberapa tahun yang lalu dan bergantung pada beberapa perpustakaan yang sangat lama. Sebaliknya, projek aktif bergantung pada perpustakaan terkini. Kedua-dua projek tidak dapat wujud bersama dalam pemacu SD / USB yang sama ?.
Sandaran Imej
Oleh kerana beberapa projek tidak dapat wujud bersama, beli lebih banyak pemacu SD / USB untuk memastikan setiap imej projek bergantung kepada satu cara. Sekiranya wang tidak terhad ?. Tetapi ini meningkatkan kesukaran pengurusan fail / gambar, kadang-kadang anda memerlukan pertukaran SD / USB dan boot berkali-kali untuk mengetahui apa yang anda mahukan.
Sukar Dikongsi
Semasa anda membina projek anda dan ingin berkongsi sumbernya kepada rakan, rakan anda mungkin mendapat suapan binaan yang gagal. Versi edaran / perpustakaan terlalu lama atau terlalu baru, parameter bangunan dan beberapa muslihat. Anda memerlukan masa untuk menyelesaikan masalah membina orang lain tetapi tidak menyokong projek itu sendiri.
Titik sakit di atas adalah pengalaman saya dalam beberapa tahun ini. Docker dapat menolong sebahagian besarnya.
Docker mula membina dari memilih gambar induk prebuilt. Cth. debian: jessie-slim bermula dari pengedaran berat ringan Debian yang lama; simpul: Permulaan 10-buster-slim dari pengedaran berat Debian dengan Node.js 10 dipasang. Imej prebuilt dapat menjimatkan banyak masa untuk mem-flash gambar, mendapatkan kemas kini dan memasang perpustakaan bergantung. Setiap projek boleh bermula dari versi OS yang berbeza, versi runtime dan versi perpustakaan. Apabila anda selesai membangunkan projek anda sendiri, anda boleh mendorong imej Docker ke hub docker dan berkongsi kepada semua orang. Anda boleh menyimpan semua data projek pada SD / USB yang sama (data harus dibuat sandaran rutin ke media lain). Untuk menjimatkan simpanan tempatan, anda bahkan dapat membersihkan gambar Docker apabila tidak digunakan, bila-bila masa anda boleh menarik kembali dari hub Docker lagi.
Langkah 2: Docker Overhead
Docker menambah satu lapisan virtualisasi, overhead menjadi perhatian. Saya tidak terlalu banyak menguji mengenai overhead Docker. Sebilangan besar hasil Googled menuntut overhead yang sangat rendah dan saya dapati dokumen ini mengenai beberapa penyelidikan yang berkaitan:
domino.research.ibm.com/library/cyberdig.n…
Langkah 3: Pasang Docker
Cukup jalankan:
curl -sSL https://get.docker.com | sh
Ruj:
www.raspberrypi.org/blog/docker-come-to-…
docs.docker.com/get-started/
Langkah 4: Membina Imej Docker
Sila dapatkan panduan rasmi untuk membina gambar pelabuhan:
docs.docker.com/get-started/part2/
Saya mempunyai 2 projek menggunakan Docker, anda mungkin menganggap Dockerfile sebagai rujukan:
BanateCAD memerlukan runtime Lua dan beberapa perpustakaan Lua tambahan. Hanya Lua 5.1 yang boleh serasi dengan semua perpustakaan Lua yang diperlukan tetapi ia adalah produk tahun 2006. Pengedaran Debian terbaru yang dapat membina kejayaan Lua 5.1 ialah Jessie (Versi sebelum kandang lama Debian sekarang). Oleh itu, saya membina Lock 5.1 persekitaran Docker Image untuk menjalankannya
github.com/moononournation/BanateCAD/tree/…
OpenCV adalah projek yang sedang berkembang, kod sumber bergantung pada perpustakaan dan penyusun terkini. Oleh itu, peluang yang sangat tinggi untuk membina gagal, tandatangan kaedah perpustakaan, versi penyusun, konflik kebergantungan… Saya ingin menggunakan opencv4nodejs untuk membuat aplikasi mudah dan tidak memerlukan ciri terkini. Oleh itu, apabila saya menemui kaedah untuk membina kejayaan opencv4nodejs, saya ingin membekukannya ke Docker Image dan melakukan pengekodan aplikasi saya yang sebenarnya
github.com/moononournation/face-aware-phot…
Langkah 5: Pembangunan Membangunkan Kelajuan Vs Gambar Ukuran
Anda mungkin mendapati projek wajah-sedar-foto-osd saya mempunyai 2 versi Dockfile:
github.com/moononournation/face-aware-phot…
Semasa pembangunan, saya suka perintah RUN split sekecil mungkin dan mengatur kemungkinan besar untuk menukar perintah RUN ke langkah terakhir. Jadi untuk setiap perubahan untuk pembangunan, saya dapat menggunakan lapisan binaan sebelumnya sebanyak mungkin dan menjimatkan banyak kelajuan binaan.
Sebaliknya, saya akan menggabungkan semua perintah RUN dalam satu sebelum dilepaskan. lapisan yang lebih rendah dapat mengurangkan saiz Docker Image. Projek face-sadar-photo-osd saya sebagai contoh dapat mengurangkan saiz lebih dari 100 MB.
Langkah 6: Imej Multi Arch
Seperti disebutkan sebelumnya, RPi tidak berminat dengan daya pemprosesan. Gunakan gambar RPi build Docker mungkin bukan pilihan yang baik, terutamanya apabila RPi satu-satunya anda menjalankan projek lain.
Gunakan komputer x86 juga dapat membantu anda membina Imej Docker, sila dapatkan maklumat lebih lanjut di sini:
www.docker.com/blog/multi-arch-images/
2 arahan mudah dapat membina x86 dan ARM Docker Image secara selari:
buildx docker create --use
buildx docker buildx --platform linux / amd64, linux / arm -t moononournation / debian-imagemagick-lua-meshlab: 1.0.1 --push.
Multi Arch dapat membina imej multi platform dengan tag gambar Docker yang sama, sehingga projek anda dapat berjalan di mesin yang berbeza dengan lancar. cth.
docker run -it moononournation / debian-imagemagick-lua-meshlab: 1.0.1
Tidak kira anda menjalankan perintah di atas pada RPi atau komputer x86 anda, anda boleh mendapatkan persekitaran runtime Lua.
Langkah 7: Selamat Hari RPi
Anda kini boleh mengembangkan dan berkongsi projek RPi anda dengan lebih mudah!
Disyorkan:
Pemprosesan Imej Dengan Raspberry Pi: Memasang OpenCV & Pemisahan Warna Imej: 4 Langkah
Pemprosesan Imej Dengan Raspberry Pi: Memasang OpenCV & Pemisahan Warna Imej: Catatan ini adalah yang pertama dari beberapa tutorial pemprosesan gambar yang akan diikuti. Kami melihat lebih dekat piksel yang membentuk gambar, belajar bagaimana memasang OpenCV pada Raspberry Pi dan kami juga menulis skrip ujian untuk menangkap gambar dan juga
Ujian Imej untuk Warna dan Kejelasan: 8 Langkah
Ujian Imej untuk Warna dan Kejelasan: Saya membuat Instruksional ini untuk saya; untuk meningkatkan Instructables saya, namun saya berhasrat untuk berkongsi apa yang saya dapati. Saya perhatikan beberapa gambar yang saya muat naik ke Instructabes keluar dengan sempurna dan gambar lain kurang jelas, sedikit berubah warna atau kabur. Tidak tahu
Menggunakan Ambang Intensiti Skala Kelabu Bervariasi untuk Memvisualisasikan dan Mengenal Kelainan dalam Imej Mammogram: 9 Langkah
Menggunakan Had Bervariasi Skala Kelabu Bervariasi untuk Memvisualisasikan dan Mengenal Kelainan dalam Imej Mammogram: Tujuan projek ini adalah untuk mengenal pasti dan menggunakan parameter untuk memproses gambar mamogram skala abu-abu dari pelbagai klasifikasi tisu latar belakang: Lemak, Kelenjar Lemak, & Tisu lebat. Klasifikasi ini digunakan ketika ahli radiologi menganalisis mam
Menyimpan Imej Anda untuk Tugas Anda: 4 Langkah (dengan Gambar)
Menyimpan Imej Anda untuk Tugas Anda: 1. Buka dokumen Google baru dan gunakan halaman ini untuk menyimpan gambar anda.2. Gunakan ctrl (kawalan) dan " c " kunci untuk disalin.3. Gunakan ctrl (kawalan) dan " v " kunci untuk ditampal
Letakkan Imej untuk Akaun Anda: 4 Langkah
Letakkan Gambar untuk Akaun Anda: Saya akan menunjukkan kepada anda beberapa orang yang memerlukan pertolongan untuk menambahkan gambar sebagai avatar atau untuk arahan anda. Berikut adalah beberapa arahan langkah demi langkah bagaimana melakukannya. Jangan ragu untuk menambah komen, dan beberapa petua untuk petunjuk ini. Di bawah