12 Ide Proyek Docker Menarik Untuk Pemula [2022]

Diterbitkan: 2021-01-07

Saat ini, aplikasi tidak lagi dikembangkan dan diterapkan seperti dulu sebelum DevOps. Sejak DevOps menjadi arus utama di industri TI dan perangkat lunak, ia telah secara radikal mengubah infrastruktur operasional. Sekarang, Pengembang dan Operator bekerja sama untuk membangun, menguji, dan menerapkan aplikasi dengan cepat dan efisien. Di situlah Docker cocok dalam gambar.

Docker adalah perangkat lunak penampung, atau lebih tepatnya, alat PaaS yang memungkinkan Anda untuk memecah aplikasi dan lingkungannya menjadi potongan yang lebih kecil yang dapat disimpan dan digunakan di lingkungan dan mesin apa pun dengan cara yang tidak merepotkan. Dengan containerization, beberapa container (termasuk aplikasi, file sistemnya, dan lingkungan) bekerja dengan lancar dalam satu mesin virtual bahkan tanpa berbagi semua sumber daya.

Akibatnya, Anda dapat menjalankan beberapa aplikasi di mesin virtual yang sama, di mana setiap aplikasi akan bekerja seolah-olah memiliki sistem operasi, CPU, memori, penyimpanan, dan sumber daya penting lainnya.

Ekosistem Docker terdiri dari empat proyek besar, yaitu Moby, Kubernetes, dan Containerd. Namun, bukan itu saja – ada lebih banyak hal di Docker daripada ketiga proyek ini. Setiap hari komunitas Docker secara aktif bekerja untuk mengembangkan proyek dan alat terbaik di kelasnya baik dengan dan untuk Docker sehingga Pengembang di seluruh dunia dapat membangun dan menerapkan aplikasi yang dapat berjalan di mana saja. Jika Anda ingin mempelajari DevOps, Docker adalah bagian penting untuk dipelajari.

Pelajari cara membuat aplikasi seperti Swiggy, Quora, IMDB, dan lainnya

Dalam posting ini, kami akan menyoroti beberapa proyek Docker terbaik yang harus diketahui oleh setiap calon Pengembang!

Daftar isi

Ide Proyek Docker Teratas

1. Peternak VM

Siapa pun yang menggunakan Docker mungkin tahu apa itu Rancher. Ini adalah vendor container-as-service yang mencakup sejumlah orkestrasi container dan kerangka kerja penjadwalan yang paling banyak digunakan – Docker Swarm , Kubernetes , dan Mesos . RancherVM adalah salah satu proyek Rancher yang kurang dikenal yang memungkinkan Anda menjalankan VM di dalam wadah Docker. Ini dilengkapi dengan UI Web untuk mengelola kunci publik, node komputasi, VM, dan untuk mengakses konsol VNC dari browser web.

Dengan RancherVM, Anda dapat membangun VM yang berjalan di dalam pod Kubernetes, juga dikenal sebagai VM Pods. Setiap pod VM menyertakan wadah yang menjalankan instance mesin virtual. Saat ini, RancherVM hanya mendukung gambar KVM. Jadi, Anda dapat mengemas gambar KVM apa pun sebagai gambar Docker, mendistribusikannya menggunakan registri Docker apa pun (misalnya, DockerHub), dan menjalankannya di RancherVM.

Selanjutnya, RancherVM memperluas API Kubernetes dengan Definisi Sumber Daya Kustom (CRD). Anda dapat menentukan spesifikasi CRD VirtualMachine yang menentukan gambar dasar apa, berapa banyak sumber daya komputasi, dan pasangan kunci apa yang diizinkan untuk memulai sesi SSH. Kemudian, pengontrol Kubernetes akan membuat pod VM sesuai dengan spesifikasi yang Anda berikan dan menampilkannya dalam status CRD VirtualMachine.

Ketahui lebih banyak: 10 Proyek DevOps yang Menyenangkan untuk Pemula [2020]

2. Dockercraft

Pada November 2015, Microsoft merilis Dockercraft di depan mata publik. Ini diluncurkan sebagai sumber terbuka di GitHub, yang secara eksplisit dirancang untuk memungkinkan pengembang mengelola wadah Docker mereka di Minecraft , game populer yang dibeli Microsoft seharga US$ 2,5 miliar !

Menurut GitHub , Dockercraft adalah "klien Minecraft Docker sederhana, untuk memvisualisasikan dan mengelola wadah Docker" di lingkungan 3D Minecraft. Ini bukan manajer Docker rumit yang diterapkan di Minecraft, melainkan cara sederhana untuk memvisualisasikan dan membalik sakelar dalam wadah Docker.

Penting untuk diingat bahwa Anda harus memiliki Minecraft versi lengkap di PC Anda untuk menggunakan Dockercraft. Jika sudah memilikinya, Anda dapat mengunduh Dockercraft dari Github . Setelah Anda menyelesaikan penyiapan, Anda harus menjalankan wadah Dockercraft dan bergabung dengan server Minecraft khusus – Cuberite.

3. Anggur

Kelemahan terbesar Docker adalah bahwa aplikasi Docker bukan lintas platform, artinya Anda tidak dapat menjalankan aplikasi Docker Windows secara native di Linux. Untuk mengatasi masalah ini, Wine telah dibuat. Wine on Docker dikembangkan untuk memungkinkan aplikasi Windows berjalan di OS Linux seperti halnya aplikasi lokal akan berjalan dari mana saja di dunia. Di Docker, dikenal sebagai Wine, sedangkan di GitHub , kami menyebutnya Docker-Wine.

Wine menggunakan lapisan kompatibilitas Wine untuk mendukung aplikasi Windows di Linux. Karena Wine hadir dengan driver Video Dinamis dan VirtualGL dengan dukungan lokal dan jarak jauh, Wine harus bekerja dengan baik dengan kartu Nvidia dan driver Nvidia yang siap pakai dan bahkan kartu lain yang menggunakan driver Mesa. Anda dapat mengonfigurasi Wine untuk beradaptasi secara otomatis dengan driver apa pun yang mungkin telah Anda instal, asalkan driver tersebut yang terbaru untuk cabang Anda.

4. Docker-Mon

Saat ini, hanya ada beberapa layanan pemantauan untuk gambar Docker, misalnya, Galangan Kapal . Dan itu adalah fakta yang mapan bahwa pengembang/pemrogram menyukai alat yang memungkinkan mereka mengakses semua persyaratan penting di dalam shell. Docker-Mon adalah salah satu alat pemantauan Docker konsol tersebut. Docker-mon didasarkan pada bless-contrib , kerangka dasbor yang berpusat pada shell.

Proyek ini masih dalam proses, dan bergantung pada fitur statistik buruh pelabuhan yang belum diluncurkan. Jadi, untuk menggunakan Docker-Mon, Anda memerlukan master build atau v1.5.0 yang akan datang (Anda dapat memeriksa peluncuran untuk v1.5.0-rc1 di sini ).

5. Penumpang-Docker

Kita semua tahu bahwa Phusion Passenger adalah favorit para pengembang Rails. Tujuan utama dari server aplikasi ini adalah untuk menciptakan lingkungan yang sesuai di mana pengembang dapat menjalankan aplikasi mereka dengan lancar. Ide inilah yang memicu terciptanya proyek Passenger-Docker. Tujuannya adalah untuk mengembangkan gambar dasar default yang masuk akal untuk pengembang yang ingin mengimplementasikan Docker di lingkungan produksi mereka.

Passenger-Docker adalah rangkaian gambar Docker yang dirancang untuk berfungsi sebagai dasar untuk gambar aplikasi web Ruby, Python, Node.js, dan Meteor. Mempertahankan mantra inti Phusion Passenger, proyek Passenger-Docker berupaya menyederhanakan dan mempercepat proses pembuatan gambar Docker untuk aplikasi web.

6. Kube Virt

KubeVirt adalah add-on manajemen VM untuk Kubernetes. Ini dikembangkan untuk menawarkan landasan bersama untuk membangun solusi virtualisasi di atas Kubernetes. Pada dasarnya, Kubernetes dibuat untuk mengelola container dan bukan jenis infrastruktur lainnya. Namun, Anda dapat menggunakan Kubernetes untuk mengatur cluster VM. Inilah yang dilakukan KubeVirt – ia menambahkan fungsionalitas ekstra ke Kubernetes sehingga dapat mendukung VM dengan mulus.

KubeVirt bertujuan untuk memperluas fungsionalitas Kubernetes dengan memasukkan jenis sumber daya virtualisasi tambahan melalui API Definisi Sumber Daya Kustom Kubernetes . Anda dapat menggunakan KubeVirt untuk membuat VM standar, meluncurkan VM, menghentikan VM, menghapus VM, dan juga menjadwalkan VM di cluster Kubernetes. Namun, KubeVirt masih dalam proses.

Baca selengkapnya: Jaringan Kubernetes: Panduan Lengkap untuk Memahami Model Jaringan

7. Dokumen

Docket adalah registri Docker khusus yang memfasilitasi penyebaran secepat kilat melalui BitTorrent. Ini memungkinkan Anda menyebarkan gambar Docker di sekelompok besar mesin dengan kecepatan yang mengesankan. Docket dirancang dan dikembangkan dalam 48 jam di hackathon Gopher Gala Golang 48 jam! Ditulis dalam Golang, Docket mudah digunakan, dan dapat bekerja dengan baik dengan registri Docker pribadi Anda.

Docket terdiri dari tiga komponen utama -

  • Docket Registry: Ini adalah layanan REST yang berfungsi sebagai registri. Itu dapat menerima tarball gambar Docker dari klien, menyimpan metadata ke dalam database, dan membuat torrent dari mereka serta menyemai mereka.
  • Klien Docket: Ini adalah antarmuka yang dengannya pengguna akhir berinteraksi. Ini memungkinkan Anda untuk melihat gambar yang tersedia di registri, mendorong gambar ke registri, dan menarik gambar dari registri (ini memicu penyebaran BitTorrent).
  • BitTorrent Tracker: Meskipun Docket memiliki fitur BYOT (bawa pelacak Anda), kami menyarankan Anda menginstal opentracker untuk melacak BitTorrent.

8. Alat Migrasi Kontainer (CMT)

Hal yang baik tentang wadah Docker adalah bahwa mereka portabel, seperti, mereka dapat berjalan pada semua jenis host yang telah menginstal Docker. Namun, Docker tidak memiliki fitur bawaan yang memungkinkan Anda memindahkan container yang sedang berjalan dari satu cluster ke cluster lain melalui jaringan. Untuk menambah tantangan, Checkpoint & Restore (CR) masih merupakan fitur yang relatif baru yang tidak tersedia secara umum untuk pengguna kontainer. CR menuntut tingkat pemahaman tentang fungsinya, dan biasanya, sebagian besar pengguna yang tidak berpengalaman dengan fungsionalitas CR mendapatkan kesalahan saat melakukan CR karena perbedaan/keterbatasan antara sumber dan host target.

Alat Migrasi Kontainer atau CMT secara khusus dikembangkan untuk mengatasi masalah migrasi ini. Gagasan di balik pembuatan CMT adalah untuk membuat alat baris perintah eksternal yang dapat digunakan dengan Docker atau runC yang memfasilitasi migrasi langsung wadah antara host yang berbeda dengan melakukan validasi pra-migrasi dan menemukan host target yang sesuai secara otomatis.

9. dockerfile_lint

Linter adalah komponen penting dalam pengembangan toolchain dari depan. Mereka banyak digunakan oleh pengembang JavaScript dan sangat berguna ketika banyak pengembang bekerja pada basis kode bersama. dockerfile_lint adalah linter berbasis aturan untuk Dockerfiles .

Anda dapat menggunakan aturan dockerfile_lint untuk memeriksa sintaks file, semantik arbitrer, dan atribut praktik terbaik yang ditentukan oleh penulis file aturan. Selain itu, Anda dapat menggunakan linter untuk memeriksa aturan LABEL terhadap gambar Docker. File aturan ditulis dalam YAML . Semua aturan diimplementasikan menggunakan ekspresi reguler, dan mereka dapat berjalan pada satu instruksi Dockerfile pada satu waktu. File aturan terdiri dari empat bagian –

  • Bagian profil: Ini memberikan informasi yang diperlukan tentang file aturan yang membantu pengguna untuk memilih file aturan yang sesuai untuk file Docker tertentu.
  • Bagian umum: Ini berisi aturan sintaks umum.
  • Bagian aturan baris: Ini berisi aturan yang harus dijalankan pada instruksi yang diberikan di Dockerfile. Ada aturan untuk memeriksa sintaks setiap instruksi.
  • Bagian instruksi yang diperlukan: Berisi daftar instruksi yang harus ada di Dockerfile agar dapat dianggap valid.

10. Campuran Docker

Dockermix adalah alat baris perintah yang digunakan untuk mengembangkan dan mengelola lingkungan Docker multi-kontainer. Dalam proyek ini, kumpulan penampung didefinisikan dalam format YAML yang mengemulasi opsi yang tersedia di Docker API. Tujuan di balik pembuatan Dockermix adalah untuk memungkinkan pengembang meluncurkan, mengatur, dan menerapkan lingkungan multi-node yang kompleks untuk pengujian dan pengembangan dengan mudah.

Proyek Dockermix kini telah berganti nama menjadi Maestro dengan perkembangannya bergerak di bawah organisasi Toscanini. Untuk mengakses kode sumber saat ini, Anda dapat melihat proyek Maestro .

11. Buku Masak Docker

Docker Cookbook mencakup semua sumber daya yang diperlukan untuk menginstal Docker dan membangun, mengelola, dan menjalankan container Docker. Proyek Docker ini hanya terkait dengan mesin kontainer Docker yang didistribusikan oleh Docker, Inc., dan tidak membahas perkakas ekosistem Docker atau teknologi lain seperti Cgroups atau AUFS.

Untuk menggunakan Docker Cookbook, Anda harus menginstal Chef v12.15 atau yang lebih baru di mesin Anda. Cookbook menawarkan dukungan untuk berbagai platform, termasuk Amazon Linux, Fedora, CentOS 7, Debian 8/9, dan Ubuntu 14.04/16.04. Juga, itu dapat secara otomatis mengatur repositori paket Docker hulu.

12. Dokku

Dokku adalah mini-Heroku bertenaga Docker, implementasi PaaS terkecil yang pernah dikembangkan. Solusi PaaS ini memungkinkan pengguna untuk mengonfigurasi dan menyebarkan aplikasi ke lingkungan produksi di server terpisah. Ini menggunakan Docker untuk membantu pengembang membangun dan mengelola siklus hidup aplikasi yang lengkap.

Anda dapat menginstal Dokku di mesin apa pun dan bahkan menggunakannya di penyedia cloud yang murah. Selain itu, Anda dapat menulis plugin Dokku dalam bahasa apa pun, membagikannya secara online, dan memperluas plugin yang sudah tersedia.

Pelajari Kursus Pengembangan Perangkat Lunak online dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.

Membungkus

Ini hanyalah beberapa dari banyak, banyak proyek yang telah dikembangkan dengan Docker sebagai fondasinya. Meskipun Anda tidak memerlukan semua alat Docker ini untuk proyek Anda berikutnya, ada baiknya mengetahui bahwa Anda memiliki banyak opsi!

Jika Anda tertarik untuk mempelajari lebih lanjut tentang data besar, lihat Program PG Eksekutif upGrad & IIIT-B dalam Pengembangan Perangkat Lunak Tumpukan Penuh yang dirancang untuk para profesional yang bekerja dan menawarkan 500+ jam pelatihan yang ketat, 9+ proyek dan tugas, IIIT -B Status alumni, proyek batu penjuru praktis & bantuan pekerjaan dengan perusahaan-perusahaan top.

Persiapkan Karir Masa Depan

Daftar Sekarang untuk Program PG Eksekutif dalam Pengembangan Tumpukan Penuh