Daftar Isi:
- Langkah 1: Mengapa Docker?
- Langkah 2: Overhead Docker
- Langkah 3: Instal Docker
- Langkah 4: Membangun Gambar Docker
- Langkah 5: Pengembangan Kecepatan Bangun Vs Ukuran Gambar
- Langkah 6: Gambar Multi Arch
- Langkah 7: Selamat RPi
Video: Bangun Gambar Docker untuk Raspberry Pi: 7 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:54
Instruksi ini menunjukkan cara membuat Gambar Docker untuk Raspberry Pi.
Langkah 1: Mengapa Docker?
Anda dapat menggunakan Raspberry Pi (RPi) untuk melakukan banyak hal, server web kecil, asisten AI, Robotika … dll.
Banyak proyek yang ingin Anda coba, tetapi poin masalahnya adalah:
Saatnya Membangun
RPi tidak tertarik pada kekuatan pemrosesan, dan drive SD/USB membatasi kecepatan IO. Gunakan apt install semua paket ketergantungan membutuhkan satu jam dan membangun sumber membutuhkan lebih banyak jam. Khusus untuk proyek terkait AI, waktu untuk menunggu lebih lama daripada waktu untuk mencoba.
Konflik Versi
Semua orang mencoba banyak proyek dalam satu RPi. Ketika Anda telah mencoba sebuah proyek dan ingin beralih ke proyek lain, Anda mungkin menemukan beberapa kegagalan pembangunan yang disebabkan oleh konflik versi pustaka dependensi dengan proyek sebelumnya. Beberapa perpustakaan berhenti berkembang beberapa tahun yang lalu dan bergantung pada beberapa perpustakaan yang sangat tua. Sebaliknya, proyek aktif bergantung pada perpustakaan terbaru. Kedua proyek tidak dapat hidup berdampingan di drive SD/USB yang sama?.
Cadangan Gambar
Karena beberapa proyek tidak dapat hidup berdampingan, cukup beli lebih banyak drive SD/USB untuk menjaga agar setiap gambar proyek tetap bergantung. Jika uang tidak terbatas?. Tapi itu meningkatkan kesulitan manajemen file/gambar, terkadang Anda memerlukan swap SD/USB dan boot berkali-kali untuk mengetahui apa yang Anda inginkan.
Sulit Untuk Dibagikan
Saat Anda membuat proyek dan ingin membagikan sumbernya kepada teman, teman Anda mungkin mendapatkan umpan balik kegagalan pembangunan. Versi distribusi/perpustakaan terlalu lama atau terlalu baru, membangun parameter dan beberapa trik. Anda perlu menggunakan waktu untuk menyelesaikan masalah pembangunan orang lain tetapi tidak mendukung proyek itu sendiri.
Poin-poin nyeri di atas adalah pengalaman saya dalam beberapa tahun ini. Docker dapat membantu sebagian besar.
Docker mulai membangun dari memilih gambar induk bawaan. Misalnya. debian:jessie-slim mulai dari distribusi ringan Debian lama yang stabil; node:10-buster-slim mulai dari distribusi ringan Debian dengan Node.js 10 diinstal. Gambar prebuilt dapat menghemat banyak waktu untuk mem-flash gambar, mendapatkan pembaruan, dan menginstal perpustakaan yang bergantung. Setiap proyek dapat dimulai dari versi OS, versi runtime, dan versi library yang berbeda. Ketika Anda selesai mengembangkan proyek Anda sendiri, Anda dapat mendorong image Docker ke hub docker dan membagikannya kepada semua orang. Anda dapat menyimpan semua data proyek di SD/USB yang sama (data harus dicadangkan secara rutin ke media lain). Untuk menghemat penyimpanan lokal, Anda bahkan dapat membersihkan gambar Docker saat tidak digunakan, kapan saja Anda dapat menarik dari hub Docker lagi.
Langkah 2: Overhead Docker
Docker menambahkan satu lapisan virtualisasi, overhead menjadi perhatian. Saya belum menguji terlalu banyak tentang overhead Docker. Sebagian besar hasil Googled mengklaim overhead yang sangat rendah dan saya menemukan dokumen ini tentang beberapa penelitian terkait:
domino.research.ibm.com/library/cyberdig.n…
Langkah 3: Instal Docker
Cukup jalankan:
curl -sSL https://get.docker.com | NS
Referensi:
www.raspberrypi.org/blog/docker-comes-to-…
docs.docker.com/get-started/
Langkah 4: Membangun Gambar Docker
Silakan temukan panduan resmi tentang membangun gambar buruh pelabuhan:
docs.docker.com/get-started/part2/
Saya memiliki 2 proyek menggunakan Docker, Anda dapat menemukan Dockerfile sebagai referensi:
BanateCAD membutuhkan runtime Lua dan beberapa pustaka Lua tambahan. Hanya Lua 5.1 yang dapat kompatibel dengan semua pustaka Lua yang diperlukan tetapi ini adalah produk tahun 2006. Distribusi Debian terbaru yang dapat membangun kesuksesan Lua 5.1 adalah Jessie (Versi sebelum stabil lama Debian saat ini). Jadi saya membangun Docker Image lingkungan Lua 5.1 untuk menjalankannya
github.com/moononournation/BanateCAD/tree/…
OpenCV adalah proyek yang berkembang secara aktif, kode sumbernya bergantung pada pustaka dan kompiler terbaru. Jadi kemungkinan besar untuk gagal membangun, tanda tangan metode perpustakaan, versi kompiler, konflik ketergantungan … Saya ingin menggunakan opencv4nodejs untuk membuat aplikasi sederhana dan tidak memerlukan fitur terbaru. Jadi ketika saya menemukan cara untuk membangun kesuksesan opencv4nodejs, saya ingin membekukannya ke Gambar Docker dan melakukan pengkodean aplikasi saya yang sebenarnya
github.com/moononournation/face-aware-phot…
Langkah 5: Pengembangan Kecepatan Bangun Vs Ukuran Gambar
Anda mungkin menemukan proyek face-aware-photo-osd saya memiliki 2 versi Dockfile:
github.com/moononournation/face-aware-phot…
Saat pengembangan, saya suka membagi perintah RUN sekecil mungkin dan mengatur kemungkinan besar untuk mengubah perintah RUN ke langkah terakhir. Jadi untuk setiap perubahan pembangunan untuk pengembangan, saya dapat memanfaatkan lapisan yang dibangun sebelumnya sebanyak mungkin dan menghemat banyak kecepatan pembangunan.
Sebaliknya, saya akan menggabungkan semua perintah RUN menjadi satu sebelum rilis. lapisan yang lebih rendah dapat banyak mengurangi ukuran Gambar Docker. Proyek osd face-aware-photo-osd saya sebagai contoh dapat mengurangi ukuran lebih dari 100 MB.
Langkah 6: Gambar Multi Arch
Seperti disebutkan sebelumnya, RPi tidak tertarik pada kekuatan pemrosesan. Menggunakan RPi build Docker image mungkin bukan pilihan yang baik, terutama ketika satu-satunya RPi Anda menjalankan proyek lain.
Menggunakan komputer x86 juga dapat membantu Anda membangun Gambar Docker, silakan temukan detail lebih lanjut di sini:
www.docker.com/blog/multi-arch-images/
2 perintah sederhana dapat membangun x86 dan ARM Docker Image secara paralel:
buruh pelabuhan buildx buat --gunakan
docker buildx build --platform linux/AMD64, linux/arm -t moononournation/debian-imagemagick-lua-meshlab:1.0.1 --push.
Multi Arch dapat membangun gambar multi platform dengan tag gambar Docker yang sama, sehingga proyek Anda dapat berjalan di mesin yang berbeda dengan mulus. misalnya
docker run -it moononournation/debian-imagemagick-lua-meshlab:1.0.1
Tidak peduli Anda menjalankan perintah di atas pada RPi atau komputer x86 Anda, Anda bisa mendapatkan lingkungan runtime Lua.
Langkah 7: Selamat RPi
Anda sekarang dapat mengembangkan dan membagikan proyek RPi Anda dengan lebih mudah!
Direkomendasikan:
Bangun Penerima Inframerah Kodi / OSMC dan Setel Ulang Topi untuk Raspberry Pi: 5 Langkah (dengan Gambar)
Bangun Penerima Inframerah Kodi / OSMC dan Atur Ulang Topi untuk Raspberry Pi: Bangun Penerima IR Kodi / OSMC dan Atur Ulang topi untuk Raspberry Pi 3Dari seberang ruangan, saya ingin: Mengontrol Kodi / OSMC yang berjalan di Raspberry Pi dengan remote control Lihat apakah Raspberry Pi dihidupkanJuga, saya ingin keluarga saya
Bangun Catu Daya 15V Ganda Menggunakan Modul Rak untuk Di Bawah $50: 10 Langkah (dengan Gambar)
Bangun Catu Daya 15V Ganda Menggunakan Modul Off the Shelf dengan Harga Di Bawah $50: Pendahuluan: Jika Anda adalah penggemar yang berhubungan dengan audio, Anda akan terbiasa dengan catu daya rel ganda. Sebagian besar papan audio berdaya rendah seperti pre-amp membutuhkan di mana saja dari +/- 5V hingga +/- 15V. Memiliki catu daya tegangan ganda menjadikannya
Bangun Catu Daya untuk Pedal Gitar Anda: 7 Langkah (dengan Gambar)
Bangun Catu Daya untuk Pedal Gitar Anda: CATATAN PENTING: LISTRIK BERBAHAYA! JANGAN COBA PROYEK INI TANPA PENGETAHUAN DAN PENDIDIKAN KESELAMATAN TENTANG BEKERJA DENGAN TEGANGAN LISTRIK LISTRIK! ITU BISA DAN AKAN MEMBUNUH ANDA! BARANG LISTRIK BUATAN SENDIRI YANG MENGGUNAKAN LISTRIK LISTRIK TIDAK BOLEH
Bangun Arduino Menjadi Nissan Qashqai untuk Mengotomatiskan Lipat Cermin Sayap atau Lainnya: 9 Langkah (dengan Gambar)
Bangun Arduino Menjadi Nissan Qashqai untuk Mengotomatiskan Lipat Cermin Sayap atau Apa Pun: Nissan Qashqai J10 memiliki beberapa hal kecil yang mengganggu tentang kontrol yang dapat dengan mudah menjadi lebih baik. Salah satunya adalah harus ingat untuk menekan tombol buka/tutup kaca spion sebelum melepas kunci kontak. Lainnya adalah konfigurasi kecil
CityCoaster - Bangun Augmented Reality Coaster Anda Sendiri untuk Bisnis Anda (TfCD): 6 Langkah (dengan Gambar)
CityCoaster - Bangun Augmented Reality Coaster Anda Sendiri untuk Bisnis Anda (TfCD): Sebuah kota di bawah piala Anda! CityCoaster adalah proyek yang lahir dengan pemikiran tentang produk untuk Bandara Rotterdam Den Haag, yang dapat mengekspresikan identitas kota, menghibur klien di area lounge dengan augmented reality. Dalam lingkungan seperti