Pengantar Docker: Apa itu, Arsitektur, Alur Kerja

Diterbitkan: 2020-04-27

Daftar isi

Sejarah Virtualisasi

Belum lama ini, menerapkan layanan adalah proses yang lambat dan menyakitkan. Prosesnya melibatkan penulisan kode oleh tim pengembangan dan kemudian penerapannya oleh tim operasi pada mesin logam. Tim operasi biasanya melakukan pekerjaan mereka karena mereka harus mencari kompiler bahasa, perpustakaan, dan tambalan untuk membuat kode berfungsi.

Jika proses memiliki kesalahan atau bug, proses harus dimulai dari awal lagi – tim pengembangan akan memperbaiki bug atau kesalahan, dan tim operasi akan mulai menerapkan kode lagi.

Segalanya menjadi sedikit lebih baik ketika Hypervisors dikembangkan. Jadi, apa itu Hypervisor? Ini adalah kumpulan mesin virtual (VM) yang dapat terus berjalan atau dimatikan secara berkala, terutama saat tidak digunakan. Mesin virtual pasti membantu dengan mempercepat proses perbaikan kesalahan dan penyebaran kode, tetapi mereka masih memiliki beberapa masalah. Kontainer Docker datang sebagai pengubah permainan yang sebenarnya. Mereka bahkan membahas masalah yang ada di mesin virtual.

Baca: Kubernetes Vs. Docker: Perbedaan Utama

Apa itu Doker?

Ini adalah platform sumber terbuka yang digunakan oleh pengembang di seluruh dunia untuk menjalankan, mengemas, dan mendistribusikan aplikasi. Docker membuat proses enkapsulasi aplikasi dari langkah pertama hingga terakhir, sangat mudah dan efisien. Untuk memahami Docker dengan cara yang lebih baik, Anda harus memahami apa itu container dan cara kerjanya.

Wadah tidak lain adalah paket yang berdiri sendiri, ringan, dan dapat dieksekusi dari bagian perangkat lunak yang dilengkapi dengan semua yang diperlukan untuk menjalankannya. Kontainer sama sekali tidak bergantung pada platform. Jadi, Docker kompatibel dengan mesin berbasis Windows dan Linux. Juga, Anda bahkan dapat menjalankan Docker di mesin virtual, jika diperlukan. Tujuan dasar yang ingin dicapai Docker adalah membiarkan pengembang menggunakan arsitektur terdistribusi untuk menjalankan aplikasi layanan mikro.

Tidak seperti mesin virtual yang digunakan untuk melakukan abstraksi perangkat keras, Docker naik level dan melakukan abstraksi dari kumpulan sumber daya yang berbeda di level OS. Ini memberikan beberapa manfaat, antara lain pemisahan infrastruktur dan portabilitas aplikasi. Dengan kata lain, tidak seperti mesin virtual yang digunakan untuk mengabstraksi server perangkat keras, pendekatan berbasis wadah Docker bekerja dengan mengabstraksi inti OS. Ini adalah alternatif yang bagus untuk virtualisasi yang mengarah pada pembuatan instans ringan yang lebih cepat. Docker tersedia dalam dua versi:

Edisi Perusahaan (EE):

Versi ini dirancang khusus untuk tim TI dan pengembangan perusahaan. Versi ini digunakan untuk mengembangkan, mengirim, dan menjalankan aplikasi.

Edisi Komunitas (CE):

Versi ini digunakan oleh individu dan tim kecil yang menjelajahi aplikasi berbasis container atau memulai dengan Docker.

Baca: Ide dan Topik Proyek Full Stack

Alur Kerja Docker

Di bagian ini, kita akan fokus pada Mesin Docker serta berbagai komponennya. Ini akan membantu kita untuk lebih memahami cara kerja Docker sebelum kita beralih ke arsitektur Docker. Docker Engine adalah kekuatan yang memungkinkan pengembangan untuk melakukan berbagai fungsi menggunakan aplikasi berbasis container ini. Anda dapat menggunakan komponen yang tercantum di bawah ini untuk membuat, mengemas, mengirim, dan menjalankan aplikasi.

1. Daemon Docker

Ini adalah proses latar belakang yang terus bekerja untuk membantu Anda mengelola gambar, volume penyimpanan, jaringan, dan wadah. Itu selalu mencari permintaan Docker API untuk memprosesnya.

2. Docker CLI

Ini adalah klien antarmuka yang berinteraksi dengan Docker Daemon. Ini membantu pengembang menyederhanakan proses pengelolaan instance container. Ini adalah salah satu alasan utama mengapa pengembang lebih memilih Docker daripada aplikasi serupa lainnya .

3. API Istirahat Mesin Docker

Ini memfasilitasi interaksi antara daemon Docker dan aplikasi. Klien HTTP biasanya diperlukan untuk mengakses API ini.

Arsitektur Docker

Arsitektur Docker adalah arsitektur berbasis client-server. Ini memiliki tiga komponen utama yang disebutkan di bawah ini:

  1. Tuan rumah buruh pelabuhan
  2. klien buruh pelabuhan
  3. Registri buruh pelabuhan
  4. Objek buruh pelabuhan

Pada fase awal, klien Docker berinteraksi dengan daemon, yang bertanggung jawab untuk melakukan sebagian besar pekerjaan yang digunakan untuk mengembangkan, menjalankan, dan mendistribusikan container Docker.

Daemon Docker dan klien dapat berjalan pada satu sistem atau pengembang dapat menggunakan daemon jarak jauh untuk menghubungkannya dengan klien Docker lokal. Rest API digunakan untuk membangun komunikasi antara daemon Docker dan klien. Ini dapat dilakukan melalui antarmuka jaringan atau soket UNIX.

Sekarang mari kita bahas komponen arsitektur Docker secara detail.

Baca juga: Mengapa Menjadi Pengembang Full Stack?

1. Tuan Rumah Docker

Host Docker bertanggung jawab untuk menjalankan daemon Docker. Docker Daemon melayani permintaan API, antara lain termasuk build docker dan docker run. Itu juga mengelola gambar, jaringan, wadah, dan objek Docker lainnya. Daemon dapat berkomunikasi satu sama lain untuk mengelola layanan Docker yang berbeda.

2. Klien Docker

Tidak lain adalah metode yang digunakan pengguna untuk berinteraksi dengan Docker. Klien Docker mengirimkan permintaan kami, seperti docker run, dan build Docker ke daemon Docker. Fitur yang sangat penting dari klien Docker adalah dapat berkomunikasi dengan beberapa daemon.

3. Registri Docker

Registri adalah aplikasi sisi server yang dapat diskalakan dan tidak memiliki kewarganegaraan. Ini tidak hanya menyimpan gambar Docker tetapi juga memungkinkan pengembang mendistribusikannya. Docker memberi kami fleksibilitas untuk membuat gambar kami sendiri, atau tersedia registry publik yang dapat kami manfaatkan. Registri ini antara lain termasuk Docker Cloud dan Docker Hub .

Konfigurasi Docker sedemikian rupa sehingga selalu beralih ke Docker Hub dan registri publik lainnya untuk mencari gambar. Namun, kami memiliki opsi untuk membuat registri kami sendiri. Jadi, kita dapat mengeluarkan gambar yang diperlukan menggunakan registri kita sendiri dengan bantuan perintah docker run dan docker pull. Perintah Docker push mendorong gambar yang diperlukan ke registri yang kami buat.

4. Objek Docker

Kami menggunakan dan membuat beberapa objek saat menggunakan Docker. Objek-objek tersebut antara lain container, image, plugins, volumes, network, dan lain-lain.

5. Gambar Docker

Gambar Docker tidak lain adalah template read-only yang memberi kita instruksi yang diperlukan untuk membuat container. Dalam banyak kesempatan, satu gambar memiliki hubungan dengan gambar lain. Yang membedakan dua gambar adalah lapisan kustomisasi yang ditambahkan. Dengan kata lain, gambar juga dapat didefinisikan sebagai snapshot wadah yang tidak dapat diubah. Gambar kecil, ringan, dan cepat.

6. Kontainer Docker

Mari ikuti pendekatan berbeda untuk memahami container Docker. Jadi, jika sebuah gambar dapat digunakan untuk mewakili sebuah kelas, sebuah wadah bisa menjadi instance-nya. Dengan kata lain, wadah adalah objek runtime. Kita dapat membuat, memulai, memindahkan, menghentikan, atau menghapus container dengan bantuan Docker CLI atau API. Wadah juga dapat dilampirkan ke penyimpanan dan terhubung ke satu atau lebih dari satu jaringan. Bergantung pada status wadah saat ini, kami juga dapat membuat gambar baru.

Kesimpulan

Sekarang setelah Anda mengetahui apa itu arsitektur Docker dan komponennya, Anda berada dalam posisi yang lebih baik untuk memahami peningkatan popularitasnya. Ini menyederhanakan manajemen infrastruktur dan membantu membuat instans lebih cepat, lebih ringan, dan lebih tangguh.

Jika Anda tertarik untuk mempelajari lebih lanjut tentang pengkodean tumpukan penuh, lihat Diploma PG UpGrad & IIIT-B dalam Pengembangan Perangkat Lunak Tumpukan Penuh yang dirancang untuk para profesional yang bekerja dan menawarkan 500+ jam pelatihan ketat, 9+ proyek, dan tugas, Status Alumni IIIT-B, proyek batu penjuru praktis & bantuan pekerjaan dengan perusahaan-perusahaan top.

Persiapkan Karir Masa Depan

PEMBELAJARAN TERPERCAYA INDUSTRI - SERTIFIKASI YANG DIAKUI INDUSTRI.
Lamar Sekarang