Cara Kerja Docker & Komponen Penyusunnya

Linux VPSLabs

0 Comment

Link
Cara kerja Docker dan Docker Container

Bagaimana cara kerja docker sehingga kita dapat menjalankan versi aplikasi yang berbeda pada mesin yang sama?. Saat ini istilah “Docker” dan “Container” sangat terkenal sehingga kedua istilah tersebut tidak dapat dipisahkan. Mengapa harus menggunakan Docker dan Container? Pelajari bagaimana Docker dan Container yang ringan, portabel, mandiri meningkatkan pengembangan perangkat lunak, penerapan aplikasi, dan menopang kelincahan bisnis.

Apa itu Docker dan Container

Docker adalah platform perangkat lunak untuk membangun aplikasi berdasarkan Container —yaitu lingkungan eksekusi kecil dan ringan yang menggunakan kernel sistem operasi bersama tetapi dijalankan secara terpisah satu sama lain. Sementara Container telah digunakan di sistem Linux dan Unix untuk beberapa waktu, Docker, sebuah proyek open source yang diluncurkan pada tahun 2013, membantu mempopulerkan teknologi dengan mempermudah pengembang untuk mengemas perangkat lunak mereka untuk “dibangun sekali dan dijalankan di mana saja.”

Era Sebelum Container dan Docker

Perbedaan Docker dan Virtual Machine

Mesin virtual (Virtual Machine, VM) memvirtualisasi (atau menghapus kebutuhan untuk secara langsung mengelola) perangkat keras server sementara kontainer memvirtualisasikan sistem operasi server. Docker adalah sistem operasi (atau waktu proses) untuk kontainer. Mesin Docker diinstal pada setiap server tempat Anda ingin menjalankan kontainer dan menyediakan sekumpulan perintah sederhana yang dapat digunakan untuk membuat, memulai, atau menghentikan kontainer.

Container menyediakan cara yang ringan untuk membawa beban kerja aplikasi menjadi portabel, seperti mesin virtual tetapi tanpa overhead dan massal yang biasanya terkait dengan VM. Dengan container, aplikasi dan layanan dapat dikemas dan dipindahkan secara bebas antara lingkungan fisik, virtual, atau cloud.

Cara Kerja Docker

Docker Container menyediakan cara untuk menguasai perangkat lunak. Anda dapat menggunakan Docker untuk menyelesaikan aplikasi sedemikian rupa sehingga masalah penerapan dan runtime—cara mengeksposnya di jaringan, cara mengelola penggunaan penyimpanan dan memori dan I/O, cara mengontrol izin akses—ditangani di luar aplikasi itu sendiri, dan dengan cara yang konsisten di semua aplikasi “terkemas”. Anda dapat menjalankan wadah Docker di semua host yang kompatibel dengan OS (Linux atau Windows) yang telah menginstal runtime Docker. Docker memerlukan beberapa bagian atau komponen pendukung agar dapat bekerja yang dijelaskan berikut:

Cara kerja Docker dan Docker Container

Komponen Pendukung Docker

Docker merupakan paradigma baru untuk mengemas alat yang diperlukan dalam membangun dan meluncurkan Container dengan cara yang lebih ramping dan disederhanakan daripada yang mungkin dilakukan sebelumnya. Komponen atau arsitektur Docker terdiri dari Dockerfile, image container, utilitas run Docker, Docker Hub, Docker Engine, Docker Compose, dan Docker Desktop.

Docker Engine

Docker engine adalah inti dari Docker. Ini adalah teknologi client-server yang membuat dan menjalankan container. Docker Engine menyertakan proses daemon yang berjalan lama yang disebut dockerd untuk mengelola container, API yang memungkinkan program berkomunikasi dengan daemon Docker, dan antarmuka baris perintah.

Docker Engine adalah aplikasi berbasis client-server dengan komponen: (1) Server, yang merupakan layanan yang terus berjalan disebut proses daemon. (2) REST API yang menghubungkan program-program yang akan digunakan untuk berbicara dengan daemon dan memberikan instruksi apa yang harus dilakukan. (3) Client, berupa antarmuka baris perintah.

Docker Container

Docker Engine adalah bagian dari Docker yang membuat dan menjalankan Docker Container. Sedangkan Docker Container adalah objek yang berjalan dari sebuah Docker Image. Docker Container dibuat dari image yang sudah ada. Kita dapat membuat image dimana kita dapat mengemas aplikasi Anda dalam sebuah Container, lalu menjadikannya image untuk membangun lebih banyak container darinya.

Container adalah sebuah process. Kita menjalankan process ketika kita memulai aplikasi, misalnya, server web Nginx / Apache. Sebuah proses itu sendiri adalah instruksi mandiri dengan isolasi terbatas. –Tugas Container adalah mengisolasi proses dengan hanya file dan konfigurasi yang diperlukan untuk menjalankan dan mengoperasikan Image.

Container dapat dijalankan (start), dihentikan (stop), dan diakhiri (down). Idealnya, Container diperlakukan sebagai objek yang tidak dapat diubah, dan tidak disarankan untuk membuat perubahan pada container yang sedang berjalan.

Dua atau lebih Container dapat dihubungkan bersama untuk membentuk arsitektur aplikasi berjenjang. Namun, hosting aplikasi skalabel tinggi dengan Docker telah dipermudah dengan munculnya alat orkestrasi container seperti Kubernetes.

docker-compose

Sehubungan dengan manajemen Docker yang dapat di start dan stop, terdapat istilah docker-compose. Docker Compose adalah alat baris perintah yang menggunakan file YAML untuk mendefinisikan dan menjalankan aplikasi Docker multi-container. Ini memungkinkan Anda untuk membuat, memulai, menghentikan, dan membangun kembali semua layanan dari konfigurasi Anda dan melihat status dan keluaran log dari semua layanan yang berjalan.

Docker Image

Mirip dengan snapshot di dunia VM (Virtual Machine), Docker image adalah file portabel, read-only, yang dapat dieksekusi yang berisi instruksi untuk membuat container dan spesifikasi komponen perangkat lunak yang akan dijalankan oleh container dan bagaimana caranya.

Image Docker adalah building block dari Docker yaitu template read-only dengan instruksi untuk membuat Docker Container. Image Docker adalah bagian paling esensial dari siklus hidup Docker. Kita dapat membangun sebuah image yang didasarkan pada image atau sistem operasi CentOS, yang dapat menginstal server web Nginx dan juga Apache dengan aplikasi yang diperlukan dan detail konfigurasi yang diperlukan untuk membuat aplikasi berjalan.

Untuk membuat image caranya mudah karena kita hanya perlu membuat Dockerfile dengan beberapa sintaks berisi langkah-langkah yang diperlukan untuk membuat image dan perintah make untuk menjalankannya. Setiap instruksi dalam Dockerfile akan membuat layer baru pada image. Jika kita perlu memodifikasi Dockerfile, kita dapat melakukan hal yang sama dan membuat image ulang, lapisan yang telah diubah akan dibangun kembali. Inilah sebabnya mengapa image sangat ringan, kecil, dan cepat jika dibandingkan dengan teknologi virtualisasi lainnya.

Dockerfile

Setiap kontainer Docker dimulai dengan Dockerfile. Ini adalah file teks yang menyediakan serangkaian instruksi untuk membangun image Docker, termasuk sistem operasi, bahasa, variabel lingkungan, lokasi file, port jaringan, dan komponen lain yang perlu dijalankan.

Docker Client

Docker Client adalah layanan utama yang digunakan pengguna Docker untuk berkomunikasi dengan Docker. Saat kita menggunakan perintah “docker-compose up -d”, klien mengirimkan perintah ini ke dockerd, yang mengeksekusinya. Perintah yang digunakan oleh Docker bergantung pada Docker API. Di Docker, klien dapat berinteraksi dengan lebih dari satu proses daemon.

Rekomendasi: Baca penggunaan petintah docker-compose up -d disini

Docker Daemon

Docker memiliki arsitektur client-server. Docker Daemon (dockerd) atau server bertanggung jawab dan melayani atas semua permintaan dalam Container. Daemon menerima perintah dari client Docker melalui CLI atau REST API. Client Docker dapat berada di host yang sama dengan daemon atau ada di host lain.

Secara default, daemon Docker memantau soket UNIX docker.sock. Jika Anda memiliki kasus penggunaan untuk mengakses API Docker dari jarak jauh, Anda perlu mengeksposnya melalui port Host. Jika Anda ingin menjalankan Docker di dalam Docker, Anda dapat menggunakan docker.sock dari mesin host.

Demikian cara kerja Docker dan Docker Container dalam memanajemen versi aplikasi yang dibutuhkan seorang pembuat aplikasi. Semoga bermanfaat!

Share:

Related Post