Membahas tentang docker, artinya kita akan membahas dahulu tentang teknologi kontainer. Docker adalah salah satu teknologi virtual container yang paling banyak dipakai saat ini.
Kontainer dapat diartikan sebagai alat yang dapat dipergunakan untuk memberikan sistem yang terisolasi (isolated environment) pada level OS yang dijalankan pada satu induk linux kernel (host) [referensi]. Jadi dalam satu sistem OS, bisa dibuat beberapa virtual container dengan bantuan Docker.
Docker adalah platform perangkat lunak yang memungkinkan Anda membuat, menguji, dan menyebarkan aplikasi dengan cepat. Docker mengemas perangkat lunak ke dalam unit standar yang disebut kontainer yang memiliki semua yang diperlukan perangkat lunak agar dapat berfungsi termasuk OS, Library, dan Source Code.
Dengan menggunakan Docker, kamu dapat dengan cepat menerapkan dan mengembangkan skala aplikasi ke server mana saja dan dapat langsung berjalan.
Dengan docker ini, para developer bisa memangkas proses rumit setup sebuah host server menjadi lebih mudah dan cepat.
CARA KERJA DOCKER
Docker bekerja seperti sebuah sistem operasi untuk kontainer dimana dapat dibayangkan seperti sebuah virtualisasi sistem operasi server dengan semua kebutuhan yang diperlukan untuk sebuah software yang dikemas menjadi sebuah image.
Jadi jika ingin memindahkan atau mendeploy software tersebut ke dalam server yang berbeda tidak harus mensetting ulang server tapi cukup menginstall image tersebut dan software kamu sudah siap berjalan.
Docker menggunakan arsitektur berbasis client-server. Dalam hal ini, Docker client mengirimkan permintaan berupa sebuah perintah kepada Docker daemon untuk membangun, mendistribusikan, dan menjalankan container Docker.
Untuk Arstitekur docker kamu bisa lihat gambar di bawah ini.
Kamu juga bisa menonton video berikut yang menjelaskan tentang worflow docker secara detail.
KELEBIHAN DOCKER
Nah kita sudah membahas tentang apa itu docker dan workflownya. lalu apa saja kelebihan docker dibandingkan dengan workflow basic lainnya?
1. Konfigurasi yang mudah dan simple
Docker menghilangkan proses setup server yang rumit dan rawan error apalagi jika membutuhkan banyak server dan harus di setting satu persatu.
Namun dengan docker jika kita ingin sebuah virtualisasi server maka cukup dengan satu perintah saja maka virtual server sudah bisa dipakai lengkap dengan depedency yang dibutuhkan.
2. Aplikasi Yang Terisolasi
Masing-masing container docker dalam sebuah server tidak saling berhubungan satu sama lain atau berdiri sendiri. Inilah kenapa docker bisa digunakan jika ingin membuat banyak sistem yang terisolir satu sama lainnya meskipun dalam satu mesin server.
Misalnya satu container untuk production, satu untuk development satu untuk staging. Jadi kita bisa melakukan update untuk container development tanpa mengganggu kontainer production.
3. Optimalisasi Resource
Karena dalam 1 host server bisa memiliki banyak kontainer docker sekaligus, maka ini bisa menghemat penggunaan resource server. Bayangkan saja jika tanpa docker maka untuk membuat 3 buah versi sistem yang berbeda maka membutuhkan 3 buat server.
Tapi dengan docker dengan teknologi virtualisationya maka dalam 1 server bisa menampung beberapa container sekaligus dengan sumber daya server yang akan dibagi seperti penggunaan ram dan storage.
4. Portabilitas yang tinggi
Mungkin ini kelebihan docker yang paling dibutuhkan oleh developer yaitu soal portabilitas. Kita bisa dengan mudah melakukan deploy aplikasi ke semua penyedia layanan cloud seperti AWS, Google cloud dan yang lainnya asalkan sudah mendukung docker.
Kamu juga bisa membuat virtual container kamu sendiri di local komputer kamu. Ini berarti konfigurasi server yang dipakai saat development akan sama persis dengan konfirgurasi server yang dipakai saat production. Tentunya ini meminimalisir error karena perbedaan konfigurasi server.
Kesimpulan
Docker membawa angin segar bagi para developer maupun sistem administrator. Dengan sistem kontainernya, seluruh pekerjaan pebuatan aplikasi, modul, monitoring, serta manajemen infrastruktur dapat lebih cepat, efisien dan lebih aman.
Jadi para developer bisa lebih focus pada proses development produk dan memaksimalkan waktu mereka pada produknya.
Semoga artikel tentang apa itu docker, cara kerja dan kelebihan docker bisa bermanfaat untuk para pembaca.