Sebelumnya sudah membahas tentang VM dan kegunaannya apa, namun VM masih punya beberapa kekurangan seperti lambatnya, dan lain-lain. Dalam artikel ini kita bahas aja sekalian, yang bisa dibilang “alternatif” nya, yang cara kerjanya sebenarnya cukup berbeda.

Kalo menggunakan docker, kita sudah tidak perlu lagi menggunakan hypervisor, jadi nanti kita bisa menjalankan OS kita langsung pada host computer, lalu diatasnya, memasang docker engine. Dan diatas docker engine, bukan lagi VM, tetapi “container”.

Lalu, container itu apa?

Container ini, juga sebuah lingkungan terisolasi yang dapat memiliki OS sendiri, tetapi bedanya dengan VM, adalah container tidak perlu mensimulasikan hardwarenya juga, tetapi dapat menggunakan sumber daya yang dipinjam dari host, sumber daya yang dimaksud ini adalah kernel.

Bayangkan saja, ada sebuah telur ayam, dalam telur tersebut sudah ada semua nutrisi yang dibutuhkan untuk anak ayamnya tumbuh dan menetas. Sama seperti container, isi dari container ini cukup untuk menjalankan aplikasi dalamnya.

Contohnya, ada sebuah aplikasi python yang menerima suatu API call dan memberikan respon pada port yang sama, apa saja dependency yang dibutuhkan untuk menjalankan aplikasi tersebut? Misalkan saja, aplikasi itu membutuhkan flask, sebuah web framework python. Maka dalam container itu, butuh OS, python, flask, dan juga skrip python itu sendiri.

Dengan begitu, semua kebutuhan atau dependency yang dibutuhkan oleh aplikasi ini terpenuhi, aplikasi ini dapat jalan dimanapun ada containernya dapat jalan. Yang perlu dilakukan hanyalah menjalankan docker engine, dan juga container tersebut.

Jadi, keuntungannya container apa?

  • Lebih cepat dari VM, hanya butuh beberapa detik untuk menjalankannya.
  • Mudah dijalankan dan juga lebih efisien daripada VM, karena tidak butuh simulasi sampai ke hardware.
  • Lebih kecil juga ukurannya, karena tidak butuh OS nya secara lengkap juga, hanya butuh dependency dari aplikasi yang dijalankannya saja.

Dengan ini, container sering sekali digunakan untuk membuat aplikasi yang

Kalau begitu, untuk apa ada VM?

VM dan container sama-sama memiliki keuntungannya masing-masing, dan juga dapat saling melengkapi.

  • Container memiliki isolasi yang lebih lemah daripada VM, karena masih menggunakan kernel yang sama dengan host.
  • VM biasa digunakan untuk menjalankan OS yang berbeda. Misalnya ingin menggunakan hypervisor untuk menjalankan VM ubuntu dalam host berbasis windows.
  • Banyak orang juga menjalankan container di atas VM,

Oke keren, cara menggunakannya gimana?

Membuat container sebenarnya cukup mudah, alurnya kurang lebih seperti ini:

  • Dockerfile, file isinya “instruksi” untuk membuat image. Dari dockerfile, akan dilakukan proses build yang akan mengambil instruksi yang ada pada dockerfile dan dilaksanakan, kemudian disimpan hasilnya, dan hasilnya adalah sebuah image.
  • Docker image, dia ini seakan blueprint atau cetak biru dari container yang akan kita buat. Image ini akan ditaruh kedalam registry.
  • Registry adalah tempat penyimpanan image. Ketika sebuah komputer membangun image docker, image ini disimpan ke dalam registry lokal yang berada dalam komputer itu sendiri, yang kemudian bisa diambil dan dijadikan container, atau diupload ke registry lain, seperti docker hub.

Leave a Reply

Your email address will not be published. Required fields are marked *

Collaborative Insights from an Aspiring Engineer