Ikhtisar Arsitektur Docker & Komponen Docker [Untuk Pemula]

Diterbitkan: 2020-12-31

Jika Anda baru saja menemukan dunia container, mungkin bukan ide yang buruk untuk memahami elemen dasar yang bekerja sama untuk menawarkan manfaat containerisasi. Tapi sebelum itu, ada pertanyaan yang mungkin Anda tanyakan. Masalah apa yang dipecahkan kontainer?

Setelah membangun aplikasi dalam siklus hidup pengembangan yang khas, pengembang mengirimkannya ke penguji untuk tujuan pengujian. Namun, karena lingkungan pengembangan dan pengujian berbeda, kode gagal berfungsi.

Sekarang, sebagian besar, ada dua solusi untuk ini - baik Anda menggunakan Mesin Virtual atau lingkungan kemas seperti Docker. Di masa lalu, organisasi biasa menggunakan VM untuk menjalankan banyak aplikasi.

Jadi, mengapa mereka mulai mengadopsi containerisasi di atas VM? Pada artikel ini, kami akan memberikan penjelasan rinci tentang semua pertanyaan tersebut.

Di balik alat yang fantastis ini, harus ada arsitektur yang dipikirkan dengan matang. Sebelum mengetahui tentang komponen arsitektur Docker, mari kita pahami container Docker dan bagaimana mereka lebih unggul dari VM.

Daftar isi

Kontainer Docker

Docker adalah proyek sumber terbuka yang menyediakan kemampuan untuk membuat, mengemas, dan menjalankan aplikasi di lingkungan yang terisolasi dan berisi yang disebut container.

Dengan semua isolasi dan keamanan yang disediakan oleh platform Docker, ini memungkinkan Anda untuk menjalankan banyak container secara bersamaan pada host tertentu.

Alasan Mengapa Kontainer Docker Diadopsi Secara Luas Termasuk

  • Ini memungkinkan pengembang untuk menulis kode secara lokal dan berbagi pekerjaan dengan tim mereka menggunakan Containers.
  • Mereka dapat mendorong aplikasi mereka ke dalam lingkungan pengujian, yang merupakan wadah dan menjalankan pengujian otomatis.
  • Ketika bug ditemukan, mereka dapat diperbaiki dalam lingkungan pengembangan dan kemudian disebarkan kembali.
  • Mendapatkan perbaikan semudah mendorong gambar yang diperbarui ke lingkungan produksi.

Sebelum menyelam jauh ke dalam topik, kita harus membedakan praktik virtualisasi tradisional dari containerisasi generasi baru.

Mesin Virtual Vs Kontainer Docker

Sebelum kami menggunakan containerisasi untuk praktik DevOps kami, Mesin Virtual berada di atas geladak. Kami biasa membuat VM untuk setiap aplikasi.

Sementara VM memenuhi hampir semua kebutuhan, sisi bawah penggunaan VM tidak praktis dan mengalokasikan semua memori dan sumber daya perangkat keras yang diperlukan dari mesin host yang mendasarinya.

Namun, hal itu mudah dihindari dengan containerisasi karena container menyediakan virtualisasi tingkat OS dan biasanya membutuhkan lebih sedikit memori. Dengan demikian, itu menjadi populer dan akhirnya diadopsi oleh komunitas DevOps.

Sumber Gambar

Diagram di atas menjelaskan perbedaan arsitektur VM dan Container dan mengapa Container sekarang telah melampaui VM untuk proses pengembangan sehari-hari. Tidak seperti VM, Container berada di atas Container Engine untuk menyediakan Virtualisasi tingkat OS, sehingga menghemat banyak sumber daya.

mesin buruh pelabuhan

Sebelum membahas berbagai komponen arsitektur Docker, penting untuk memahami alur kerja Docker. Mari kita lihat Mesin Docker dan beberapa bagiannya, yang akan memberi kita gambaran tentang cara kerja sistem Docker. Docker Engine pada dasarnya adalah aplikasi client-server yang khas dengan tiga komponen utama.

Server (Daemon)

Daemon Docker adalah proses berkelanjutan yang berjalan di latar belakang dan mengelola semua objek Docker. Itu mendengarkan permintaan Docker API yang diajukan oleh klien dan memprosesnya terus menerus.

Istirahat API

Ini adalah antarmuka yang digunakan klien Docker untuk berinteraksi dengan daemon Docker. Klien dapat berbicara dengan daemon melalui API dan dapat memberikan instruksi untuk itu.

Klien

Docker Client adalah Command Line Interface (CLI) yang dapat berinteraksi dengan daemon. Ini menyederhanakan seluruh proses manajemen kontainer.

Sumber Gambar

Klien Docker (yang dapat berupa klien HTTP seperti CLI) berbicara dengan daemon, yang melakukan tugas berat untuk membuat, menjalankan, dan berbagi kontainer. Klien dan daemon dapat berjalan pada mesin yang sama atau menghubungkan klien ke daemon jarak jauh. Klien dan daemon berkomunikasi satu sama lain menggunakan API Istirahat melalui soket atau antarmuka jaringan. Klien Docker membantu pengguna untuk mengelola objek Docker seperti wadah, gambar, volume, dll. Pelajari lebih lanjut tentang Proyek Docker

Mendaftar di Kursus pengembangan perangkat lunak dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.

Komponen Arsitektur

Seperti yang telah dibahas sebelumnya, Docker menggunakan arsitektur Client-Server, di mana Klien berbicara dengan daemon melalui Rest API. Arsitektur Docker terdiri dari beberapa komponen, seperti yang dibahas di bawah ini.

Sumber Gambar

daemon

Itu mendengarkan permintaan API yang diprakarsai oleh klien dan mengelola objek Docker, termasuk wadah, gambar, volume, dan jaringan. Itu juga dapat berkomunikasi dengan daemon lain untuk mengelola layanan Docker, terutama untuk mengelola jaringan Docker yang besar.

Klien

Pengguna Docker dapat berkomunikasi dengan daemon menggunakan Klien Docker. Pengguna menjalankan perintah seperti "Docker run ..." menggunakan klien seperti CLI yang kemudian meneruskan perintah ini ke Docker (daemon), akhirnya melaksanakannya. Klien Docker berkomunikasi dengan banyak daemon.

Registri

Ini menyimpan Gambar Docker dan dapat bersifat publik atau pribadi. Docker dikonfigurasi untuk mencari Gambar secara default di Docker Hub. Ketika klien mengeluarkan perintah tarik atau jalankan, gambar ditarik dari repositori.

Objek buruh pelabuhan

Saat bekerja dengan Docker, kami berinteraksi dengan beberapa objek seperti wadah, gambar, volume, jaringan, dll.

Beberapa objek tersebut adalah

Gambar-gambar

Ini adalah template read-only dan berisi instruksi untuk membuat container. Ini juga berisi metadata yang menjelaskan kemampuan container. Pengguna dapat menarik gambar dari registri Docker dan membuat lapisan gambar yang dapat ditulis di atasnya untuk membuat gambar yang disesuaikan agar sesuai dengan kebutuhan aplikasi mereka. Beberapa ide populer termasuk Ubuntu, Nginx, MySQL, dll. Ide-ide ini dapat dibagikan ke seluruh tim yang membantu mereka bekerja secara kolaboratif pada suatu aplikasi.

Wadah

Wadah adalah contoh gambar yang menyediakan lingkungan terisolasi untuk aplikasi. Mereka hanya memiliki akses ke sumber daya yang ditentukan oleh gambar yang digunakan untuk membuatnya.

Jaringan

Jaringan Docker memungkinkan wadah terisolasi di jaringan yang sama untuk berkomunikasi dan berbagi sumber daya. Beberapa jaringan yang disediakan oleh Docker antara lain bridge, host, overlay, Macvlan, dll.

Penyimpanan

Docker memungkinkan Anda untuk menyimpan data di dalam lapisan wadah yang dapat ditulis dengan bantuan driver. Docker memungkinkan empat opsi untuk penyimpanan persisten – Docker Volumes, Volume Containers, Directory Mounts, dan Storage Plugins.

Opsi penyimpanan yang paling banyak digunakan adalah volume. Mereka ditempatkan pada sistem file host dan memungkinkan beberapa wadah untuk berbagi dan menulis data di dalam volume ini.

Kesimpulan

Docker menggunakan seperangkat teknologi mutakhir yang mendasari untuk menyediakan layanan containerisasi yang efisien kepada penggunanya. Tidak diragukan lagi, dalam beberapa tahun terakhir, Docker telah mulai mendapatkan daya tarik di antara komunitas pengembang dan akan terus melakukannya di tahun-tahun mendatang.

Karena berbagai manfaat yang diberikan oleh wadah seperti efisiensi sumber daya, skalabilitas, dll., Wadah mengamankan posisinya di atas geladak.

Dalam artikel ini, kita telah membahas beberapa konsep Docker yang paling penting seperti alur kerja Docker, arsitekturnya, dan teknologi yang mendasarinya, beberapa objek Docker seperti wadah, gambar, registri, jaringan, dll.

Anda sekarang berada di jalur yang benar untuk menyelami dunia Docker Containers yang indah. Anda sekarang harus lebih memahami bagaimana sumber daya Docker yang berbeda bekerja bersama untuk memberi Anda banyak fitur yang memungkinkan Anda membangun, menyebarkan, dan membagikan aplikasi Anda dengan mulus.

Pelajari Arsitektur Docker dengan upGrad

Mulai perjalanan pembuatan aplikasi Anda dengan kecepatan yang dipercepat dengan upGrad.

upGrad Pendidikan Pvt. Ltd. menawarkan kursus eksklusif dalam spesialisasi pengembangan perangkat lunak di DevOps, yang membuat para calon siap untuk diserap di raksasa TI besar.

Sorotan Kursus

Program PG Eksekutif upGrad dalam Spesialisasi Pengembangan Perangkat Lunak dalam Big Data adalah kursus online yang dirancang dengan cermat yang dipisahkan menjadi 12 bulan.

Dalam kurikulum ini, Anda akan

  • Dapatkan akses eksklusif ke konten Ilmu Data dan Pembelajaran Mesin
  • Bekerja pada proyek dan tugas langsung
  • Dapatkan dukungan karir 360 derajat
  • Pelajari sepuluh bahasa dan alat pemrograman
  • Dapatkan bimbingan siswa yang berdedikasi

Siapkan pengembangan aplikasi DevOps dengan upGrad.

Kenapa menunggu

Terapkan hari ini!

Persiapkan Karir Masa Depan

Daftar Sekarang untuk Magister Rekayasa Perangkat Lunak