Halo kembali lagi di Buzzitech, kali ini kita akan membahas mengenai Docker. Sebelumnya Docker merupakan sebuah platform yang dibuat untuk membuat virtualisasi pada OS-Level yang berguna untuk mengisolasi antar service dengan membangun sebuah container untuk setiap service yang akan kita develop.
Semisal kita ingin membuat sebuah service dengan kebutuhan yang berbeda tetapi kita tidak ingin menginstall OS/VM lagi untuk membuat service baru tersebut, kita dapat menggunakan docker sebagai media virtualisasi servicenya tersebut. Docker pada umumnya digunakan juga apabila ada beberapa service yang membutuhkan dependecies dan library yang sama, nah apabila terjadi permasalahan pada dependecies suatu service tersebut maka akan terjadi masalah pula pada service lainnya. Maka dari itu docker memberikan solusi untuk membeuat sebuah isolasi pada tiap service dengan cara membuat sebuah container.
source : aquasec.com
Harap dicatat Docker berbeda dengan seperti kita membuat sebuah VM dimana kita menginstall OS dan membuat resource baru lagi untuk sebuah service terpisah. Docker hanya membuat sebuah container sehingga tidak membuat resource secara terpisah seperti VM.
Source : medium.com
Docker terdiri dari beberapa komponen seperti pada gambar diatas. Docker client berfungsi untuk mengirimkan perintah-perintah yang akan dijalankan pada Docker host. Docker host bertindak sebagai engine dari Docker tersebut yang didalamnya terdapat Docker daemon. Docker daemon ini yang mengatur Docker objek seperti image, containers, network, dan volume. Docker registry merupakan tempat untuk menyimpan dari Docker images, jadi ketika kita melakukan push atau pull image maka akan disimpan di Docker registry.
# Docker Image
Docker image merupakan sebuah template untuk membuat sebuah container. Berbeda dengan sebuah installer yang mana kita harus setup dahulu service yang ingin kita gunakan, Docker image ini bersifat seperti template yang langsung kita gunakan dan dijadikan sebagai container. Kita ambil contoh semisal ingin membuat kontainer web server menggunakan nginx, maka kita hanya membutuhkan sebuah image nginx dan membuatnya menjadi sebuah container tanpa perlu setup nginx dari nol.
# Docker Container
Docker container merupakan sebuah tempat terisolasi untuk setiap service, bisa dibilang container ini sebuah image yang dijalankan. Container memang sangat bergantung pada image karena tanpa image container tidak dapat dibuat dan apabila image hilang maka container pun hilang. Akan tetapi kita dapat membuat container yang berbeda dalam satu image yang sama, karena seperti sudah dijelaskan sebelumnya image merupakan sebuah template bagi container.
Kapan kita harus menggunakan Docker ?
Kita perlu menggunakan Docker apabila kita ingin membuat sebuah service dan membuatnya secara banyak dan cepat dalam satu machine. Docker memudahkan kita untuk hal tersebut, karena kita tidak perlu membuat banyak resource untuk develop aplikasi yang kita miliki dan apabila terjadi banyak perubahan pun kita tidak perlu mendeploy aplikasi dari nol karena kita dapat memanfaatkan image sebagai template untuk container dan image dapat dibuat dari container yang sebelumnya juga sudah dibuat.
Apakah Docker dapat menggantikan VM Hypervisor ?
Saat ini masih banyak diantara kita yang menggunakan VM seperti VirtualBox atau VMWare untuk media virtualisasi. Apakah dengan adanya Docker dapat menggantikan kebutuhan tersebut? Jawabannya adalah bisa untuk menggantikan tapi Hypervisor tetap akan dibutuhkan. Untuk kasus ini kita perlu melihat kebutuhan terlebih dahulu. Apa yang kita butuhkan untuk semisal mendevelop sebuah aplikasi. Kita juga tidak dapat lepas dari media virtualisasi VM karena tidak semua kebutuhan dapat di handle hanya dengan membuat container.
Comments
Post a Comment