Linux Fu: Docking Menjadi Mudah

Sebagian besar sistem operasi komputer mengalami beberapa versi “DLL hell” – istilah Windows yang jelas, tetapi konsepnya berlaku di seluruh papan. Pertimbangkan untuk melakukan pengembangan tertanam yang biasanya membutuhkan beberapa alat khusus. Anda menulis kode sistem tertanam, mengirimkannya, dan melupakannya selama beberapa tahun. Kemudian, pengguna akhir menginginkan perubahan. Sayang sekali kompiler yang Anda gunakan memerlukan beberapa perpustakaan yang telah diubah sehingga tidak berfungsi lagi. Oh, dan pemrogram perangkat membutuhkan versi perpustakaan USB yang lebih lama. Alat pembuatan Python menggunakan Python 2 tetapi sistem Anda telah pindah. Jika alat yang Anda perlukan tidak ada lagi di komputer, Anda mungkin kesulitan menemukan media penginstalan dan menjalankannya. Lebih buruk lagi jika Anda bahkan tidak memiliki jenis komputer yang tepat untuk itu lagi.

Salah satu cara untuk mengatasinya adalah dengan merangkum semua proyek pengembangan Anda dalam mesin virtual. Kemudian Anda dapat menyimpan mesin virtual dan itu termasuk sistem operasi, semua perpustakaan yang tepat, dan pada dasarnya adalah gambaran tentang bagaimana proyek itu dapat Anda susun kembali kapan saja dan di hampir semua komputer.

Secara teori, itu bagus, tetapi banyak pekerjaan dan banyak penyimpanan. Anda perlu menginstal sistem operasi dan semua alat. Tentu, Anda bisa mendapatkan gambar alat, tetapi jika Anda mengerjakan banyak proyek, Anda akan memiliki banyak salinan dari hal yang sama yang mengacaukan segalanya. Anda juga harus selalu memperbarui semua salinan tersebut jika Anda perlu memperbarui hal-hal yang — diberikan — adalah jenis yang mungkin Anda coba hindari, tetapi terkadang Anda harus melakukannya.

Docker sedikit lebih ringan daripada mesin virtual. Anda masih menjalankan kernel normal sistem Anda, tetapi pada dasarnya Anda dapat menjalankan lingkungan virtual dalam sekejap di atas kernel itu. Terlebih lagi, Docker hanya menyimpan perbedaan di antara berbagai hal. Jadi, jika Anda memiliki sepuluh salinan sistem operasi, Anda hanya akan menyimpannya sekali ditambah perbedaan kecil untuk setiap instance.

Kelemahannya adalah agak sulit untuk dikonfigurasi. Anda perlu memetakan penyimpanan dan mengatur jaringan, antara lain. Saya baru-baru ini mengalami proyek bernama Dock yang mencoba membuat kasus umum lebih mudah sehingga Anda dapat dengan cepat memutar instance buruh pelabuhan untuk melakukan beberapa pekerjaan tanpa konfigurasi nyata. Saya membuat beberapa perubahan kecil dan mem-fork proyek, tetapi, untuk saat ini, Origin telah disinkronkan dengan fork saya sehingga Anda dapat tetap menggunakan tautan aslinya.

Dokumentasi

Dokumentasi pada halaman GitHub agak jarang, tetapi penulis memiliki halaman instruksi dan video yang bagus. Di sisi lain, sangat mudah untuk memulai. Buat direktori dan masuk ke dalamnya (atau masuk ke direktori yang ada). Jalankan “dock” dan Anda akan mendapatkan wadah Docker berputar yang dinamai menurut direktori. Direktori itu sendiri akan dipasang di dalam wadah dan Anda akan memiliki koneksi ssh ke wadah.

Secara default, wadah itu akan memiliki beberapa alat yang bagus di dalamnya, tetapi saya menginginkan alat yang berbeda. Tidak masalah; Anda dapat menginstal apa yang Anda inginkan. Anda juga dapat melakukan pengaturan gambar sesuka Anda dan menamainya di file konfigurasi sebagai default. Anda juga dapat memberi nama file gambar tertentu pada baris perintah jika Anda mau. Itu berarti dimungkinkan untuk memiliki beberapa pengaturan untuk mesin baru. Anda mungkin mengatakan Anda ingin direktori ini memiliki gambar yang dikonfigurasi untuk pengembangan Linux dan satu lagi untuk pengembangan ARM, misalnya. Terakhir, Anda juga dapat memberi nama wadah jika tidak ingin terikat ke direktori saat ini.

Gambar-gambar

Ini memerlukan beberapa image Docker khusus yang sistem tahu cara menginstalnya secara otomatis. Ada pengaturan untuk Ubuntu, Python, Perl, Ruby, Rust, dan beberapa lingkungan pengembangan jaringan dan basis data. Tentu saja, Anda dapat menyesuaikan salah satu dari ini dan mengkomitnya ke gambar baru yang dapat Anda gunakan selama Anda tidak mengacaukan hal-hal yang bergantung pada alat (yaitu, server SSH, misalnya).

Jika Anda ingin mengubah gambar default, Anda dapat melakukannya di ~/.dockrc. File itu juga berisi awalan yang dihapus sistem dari nama wadah. Dengan begitu, direktori bernama Hackaday tidak akan berakhir dengan wadah bernama Hackaday.alw.home, tetapi hanya akan menjadi Hackaday. Misalnya, karena saya memiliki semua pekerjaan saya di /home/alw/projects, saya harus menggunakannya sebagai awalan sehingga saya tidak memiliki kata proyek di setiap nama wadah, tetapi — seperti yang Anda lihat di tangkapan layar terlampir — saya belum jadi wadah berakhir sebagai Hackaday.projects.

Opsi dan Alias ​​​​

Anda dapat melihat opsi yang tersedia di halaman bantuan. Anda dapat memilih pengguna, memasang volume penyimpanan tambahan, mengatur beberapa opsi penampung, dan banyak lagi. Saya belum mencobanya, tetapi sepertinya ada juga variabel $DEFAULT_MOUNT_OPTIONS untuk menambahkan direktori lain ke semua wadah.

Garpu saya menambahkan beberapa opsi tambahan yang tidak mutlak diperlukan. Pertama, -h akan memberi Anda layar bantuan pendek, sementara -U akan memberi Anda layar bantuan yang lebih panjang. Selain itu, opsi yang tidak dikenal memicu pesan bantuan. Saya juga menambahkan opsi -I untuk menulis baris sumber yang cocok untuk ditambahkan ke profil shell Anda untuk mendapatkan alias opsional.

Alias ​​opsional ini berguna untuk Anda, tetapi Dock tidak menggunakannya sehingga Anda tidak perlu menginstalnya. Ini melakukan hal-hal seperti daftar gambar buruh pelabuhan atau membuat komit tanpa harus mengingat sintaks Docker lengkap. Tentu saja, Anda masih dapat menggunakan perintah Docker biasa, jika Anda mau.

Cobalah!

Untuk memulai, Anda perlu menginstal Docker. Biasanya, secara default, hanya root yang dapat menggunakan Docker. Beberapa penyiapan memiliki grup tertentu yang dapat Anda ikuti jika Anda ingin menggunakannya dari ID pengguna Anda sendiri. Itu mudah diatur jika Anda suka. Sebagai contoh:

sudo usermod -aG docker $(whoami) newgrp docker Sudo systemctl unmask docker.service Sudo systemctl unmask docker.socket Sudo systemctl start docker.service

Dari sana, ikuti pengaturan pada halaman proyek, dan pastikan untuk mengedit file ~/.dockrc Anda. Anda perlu memastikan bahwa variabel DOCK_PATH, IGNORED_PREFIX_PATH, dan DEFAULT_IMAGE_NAME disetel dengan benar, antara lain.

Setelah diatur, buat direktori pengujian, ketik dock dan nikmati mesin virtual jenis baru Anda. Jika Anda telah menyiapkan alias, gunakan dc untuk menampilkan container yang Anda miliki. Anda dapat menggunakan dcs atau dcr untuk mematikan atau menghapus “mesin virtual.” Jika Anda ingin menyimpan wadah saat ini sebagai gambar, coba dcom untuk mengkomit wadah.

Terkadang Anda ingin memasukkan mesin palsu sebagai root. Anda dapat menggunakan dock-r sebagai singkatan untuk dock -u root dengan asumsi Anda menginstal alias.

Sulit membayangkan bagaimana ini bisa lebih mudah. Karena semuanya ditulis sebagai skrip Bash, mudah untuk menambahkan opsi (seperti yang saya lakukan). Sepertinya akan sangat mudah untuk mengadaptasi gambar Docker yang ada agar dapat diatur agar kompatibel dengan Dock juga. Jangan lupa, bahwa Anda dapat mengkomit sebuah wadah untuk menggunakannya sebagai templat untuk wadah mendatang.

Jika Anda ingin lebih banyak latar belakang tentang Docker, Ben James memiliki tulisan yang bagus. Anda bahkan dapat menggunakan Docker untuk menyederhanakan retrocomputing.