Tutorial Docker— #2 Virtual Machine vs. Container
Seri Belajar Docker dalam Bahasa Indonesia
Halo, bagi kalian yang belum paham mengenai Docker bisa membaca artikel sebelumnya:
Yuk, sekarang kita bahas mengenai Virtual Machine dan Container. Kalian pasti udah paham mengenai sedikit pengertian Container dari artikel sebelumnya.
Tapi, yang membedakan disini adalah kenapa Container disandingkan dengan Virtual Machine?
Emangnya ada yang bisa dibandingkan antara Virtual Machine dan Container?
Simak lebih lanjut dibawah ini :)
Virtualisasi
Virtual Machine dari kata virtualisasi yang berarti pembuatan sesuatu yang awalnya berbentuk fisik(hardware) diubah menjadi perangkat lunak/(software).
Virtual Machine (VM)
Sebuah Operating System/aplikasi yang diinstall pada hypervisor (hyper-v) dan punya fungsi seperti hardware. Dengan kata lain Virtual Machine adalah duplikat dari komputer asli.
Contohnya: Virtual Box, VMWare
Container
Ini Container yang ada di kapal dan truk? bukan:). Container yang dimaksud adalah teknik yang menciptakan sistem terisolasi pada level Operating System yang dijalankan pada satu induk Linux Kernel (Host).
Secara default, Docker menggunakan Distro Alpine Linux sebagai Operating Systemnya lalu dikemas menjadi Docker Desktop (Windows dan macOS) dan Docker Server (GNU Linux).
Saatnya kita bandingkan, antara
Virtual Machine vs. Container
1. Virtual Machine
Jika diurutkan dari aplikasi yaitu:
Aplikasi kita →Bins/Library →Guest OS→Hyper V→Infrastructure/Device yang kita gunakan
Contoh App 1 — Jika kita menggunakan PC dengan Operating System Windows 10. Lalu, kita mau belajar GIMP yang hanya ada Linux tanpa harus menginstall Linux secara standalone atau dual-boot. Opsi terbaik yaitu memilih menggunakan Virtual Machine.
Contoh App 2 — Jika kita menggunakan PC dengan operating System Windows 10. Lalu, kita mau belajar Sketch yang hanya ada di macOS tanpa harus menginstall Hackintosh. Opsi terbaik yaitu memilih menggunakan Virtual Machine.
Dari contoh diatas, dapat kita tarik kesimpulan. Jika kita menjalankan suatu aplikasi maka hanya ada satu guest OS yang bekerja dalam aplikasi tersebut untuk satu PC kita (Windows 10).
Kalau kita ingin mengubah Operating System App 1 dan atau 2, maka harus diuninstall beserta aplikasinya.
Guest OS akan menggunakan teknologi Hyper-V yang ada di Operating System dan BIOS kita. Lalu, Hyper-V akan meminta sharing memory kepada infrastructure/device yang kita gunakan.
Kalau terdapat 8GB RAM pada device kita, lalu menggunakan App 1 sebanyak 2GB RAM dan App 2 sebanyak 4GB Ram dijalankan bersama. Maka yang tersisa 2GB ram. Tentunya akan mengakibatkan lag pada PC kita jika menggunakan kapasitas memory yang besar pada setiap aplikasi.
2. Container
Saatnya mengurutkan dari atas:
Aplikasi kita →Bins/Library →Container Engineer →Operating System →Infrastructure/Device yang kita gunakan
Terlihat ada pengurangan langkah jika membandingkan dengan Virtual Machine. Yaitu pada Hyper-V. Kok ngga ada, Hyper-V nya?
Container menggunakan sharing kernel pada Operating System kita, ngga menggunakan memory. Jadi bisa dikatakan, ngga nge lag kalau menggunakan banyak aplikasi.
Lanjut ke contohnya yuk.
Contoh App 1 — Kita punya aplikasi berbasis Node JS menggunakan Operating System Ubuntu yang dimasukkan dalam container 1. PC kita menggunakan Operating System Windows 10 untuk menjalankan container tersebut.
Contoh App 2 — Kita punya aplikasi berbasis Python menggunakan Operating System Arch Linux yang dimasukkan dalam container 2. PC kita menggunakan Operating System macOS untuk menjalankan container tersebut.
Dari contoh diatas, kita bisa menarik kesimpulan. Kita cukup menggunakan satu PC (Windows 10/macOS) untuk menjalankan berbagai container. Lalu, jika kita ingin mengubah Operating System pada App 1 dan atau 2, ngga perlu untuk menghapus seluruhnya.
Cukup Uninstall Operating System lama ganti dengan Operating System yang baru. Aplikasi akan tetap ada. Ngga terganggu dengan pembaruan seperti Install dan Uninstall
Sudah tau kan perbedaan yang mendasar dari penggunakan Virtual Machine dan Container. Cukup sekian pembahasannya. Terima Kasih:)
Have a nice day!
Ghifari Nur Athoillah, Mahasiswa di Program Profesi CCIT-Fakultas Teknik Universitas Indonesia
Akses materi selanjutnya di: