Containerization using Docker Engine | Install Docker di Linux
Containerization adalah sebuah teknologi yang memungkinkan pengembang dan operator sistem untuk memisahkan aplikasi dari infrastruktur yang digunakannya, dan menjalankan aplikasi tersebut dalam lingkungan yang terisolasi secara virtual. Container sendiri adalah sebuah wadah yang dapat berisi semua hal yang dibutuhkan untuk menjalankan aplikasi, seperti kode, pustaka, konfigurasi, dan dependensi.
Containerization dan virtualisasi adalah teknologi yang sama-sama digunakan untuk mengisolasi aplikasi dan lingkungan kerjanya, namun ada beberapa perbedaan utama antara keduanya.
Virtualisasi melibatkan penggunaan hypervisor yang memungkinkan beberapa mesin virtual untuk berjalan pada satu server fisik. Setiap mesin virtual memiliki sistem operasi dan lingkungan kerjaannya sendiri, yang membutuhkan alokasi sumber daya seperti CPU, memori, dan ruang penyimpanan yang terpisah dari mesin virtual lainnya.
Sementara itu, containerisasi memungkinkan beberapa wadah (container) untuk berjalan di atas sistem operasi tunggal dan menggunakan sumber daya yang sama. Setiap container memiliki lingkungan kerjanya sendiri yang terisolasi, tetapi berbagi kernel sistem operasi host. Hal ini membuat container lebih ringan, lebih cepat, dan lebih efisien dibandingkan dengan virtualisasi.
Salah satu engine/container runtime yang paling populer digunakan untuk containerization adalah Docker. Docker adalah sebuah platform open-source yang memungkinkan pengguna untuk mengembangkan, mengemas, dan menjalankan aplikasi di dalam container. Docker menyediakan alat untuk membuat, mengelola, dan mendistribusikan container, serta memungkinkan aplikasi dijalankan dengan cepat dan efisien di berbagai lingkungan, baik itu di lingkungan pengembangan, pengujian, maupun produksi.
Namun, selain Docker, terdapat juga beberapa engine/container runtime lain yang digunakan untuk containerization, seperti LXC (Linux Containers), CRI-O, rkt (Rocket), dan Kubernetes Container Runtime Interface (CRI-O). Pilihan engine/container runtime yang tepat untuk digunakan tergantung pada kebutuhan dan preferensi pengguna, serta lingkungan dan teknologi yang digunakan.