Seperti layaknya VM (Virtual Machine), docker juga menggunakan virtualisasi hanya saja berbeda level virtualisasinya. VM menggunakan level virtualisasi hardware sedangkan docker menggunakan level virtualisasi sistem operasi, dimana docker membagi OS kernel sedangkan VM membaginya di hardware, hal ini lah yang menyebabkan docker terlihat lebih efisien daripada menggunakan VM. Lebih jelasnya seperti gambar dibawah ini.
Karena VM memiliki guest OS sendiri - sendiri maka tidak heran VM jauh lebih berat pengoperasiannya daripada docker, namun docker hanya cocok bila aplikasi/server yang dijalankan berada di OS kernel yang sama jika aplikasi / server membutuhkan OS yang berbeda maka VM adalah solusinya.
Sekuriti
VM tidak membagi operating systemnya yang artinya isolasi dalam pengoperasiannya akan lebih aman dibandingkan docker. Container pada docker yang membagi host kernel bisa saja terserang hacker apabila salah satu aplikasi / server nya pun juga ikut terserang.
Portable
Docker mudah diaplikasikan dibanding VM karena tidak memiliki sistem operasi terpisah. Container dapat di-porting ke OS yang berbeda, dan dapat segera diimplementasikan. Di sisi lain,VM yang memiliki OS terpisah membuat porting mesin virtual lebih sulit dibandingkan dengan ceontainer pada docker.
Untuk tujuan pengembangan / pnelitian di mana aplikasi harus diuji di berbagai platform dengan mudah, Docker adalah pilihan ideal.
Performa
Membandingkan VM dan Docker secara performa akan tidak adil karena keduanya digunakan untuk tujuan yang berbeda. Tetapi docker dengan arsitektur yang ringan, fiturnya yang lebih sedikit, resource yang intensif membuat docker menjadi pilihan daripada VM dimana docker memungkinkan scaling up dan duplikasi container tanpa harus instalasi OS lagi.
Berikut head to head antara VM dan Docker
Virtual Machine | Docker Container |
Hardware-level process isolation | OS level process isolation |
Each VM has a separate OS | Each container can share OS |
Boots in minutes | Boots in seconds |
VMs are of few GBs | Containers are lightweight (KBs/MBs) |
Ready-made VMs are difficult to find | Pre-built docker containers are easily available |
VMs can move to new host easily | Containers are destroyed and re-created rather than moving |
Creating VM takes a relatively longer time | Containers can be created in seconds |
More resource usage | Less resource usage |
Post A Comment:
0 comments: