Kalian pasti pernah dengar istilah container kan? Container adalah virtualisasi tingkat sistem operasi. Bisa juga disebut sebagai vitualisasi yang ringan. Karena hanya menyediakan kebutuhan minimum yang dibutuhkan sebuah aplikasi supaya bisa berjalan. Container merupakan virtual machine minimalis yang tidak berjalan pada hypervisor. Lalu apa saja yang ada di dalam container? Berikut ini yang ada dalam container :
- Application
- Binaries
- Configuration File
- Dependencies
- Libraries
Bagaimana caranya bisa berjalan di environment yang berbeda? Containerization memungkinkan container untuk berjalan di environment yang berbeda dengan cara mengabstraksi sistem operasi dan infrastruktur fisik. Sebuah aplikasi yang dijadikan container berbagi kernel host operating system dengan container yang lain. Bagian sistem operasi yang dibagi itu bersifat “Read-only”. Biasanya, dalam satu container hanya terdapat satu buah service atau microservice.
Sesuatu tentang Linux Container
Linux Container mengagumkan. Mereka digunakan secara luas karena mereka efektif. Linux cgroups membuat Linux Containers. Ia juga dikenal sebagai LXC. Implementasi utama pertama kontainer adalah LXC. Cara kerjanya dengan mengambil keuntungan dari isolasi cgroups dan namespace untuk menciptakan lingkungan virtual yang memiliki proses dan ruang jaringan yang terpisah.Sehingga mengarah pada ruang pengguna yang independen dan terisolasi. Singkatnya, konsep wadah saat ini berasal dari LXC. Versi Docker sebelumnya dibuat langsung di atas LXC.
Kelebihan dan kekukangan container
Kelebihan :
- Menjalankan container tidak menggunakan banyak sumber daya. Jadi seseorang dapat menambahkan lebih banyak beban kerja komputasi pada server yang sama.
- Dibandingkan dengan mesin virtual, ukuran rata-rata suatu container berada dalam kisaran puluhan atau ratusan MB, sedangkan mesin virtual mengkonsumsi beberapa gigabytes. Server dapat menampung lebih banyak kontainer.
- Kontainer cepat! Membuat container hanya membutuhkan beberapa detik. Waktu respons cepat ketika menyangkut aktivitas pengguna. Kontainer membantu mengurangi waktu yang dibutuhkan untuk pengembangan, pengujian, dan penyebaran.
- Menemukan kesalahan dan menyelesaikannya mudah dengan container. Mengapa? Karena tidak ada perbedaan antara menjalankan aplikasi secara lokal atau pada server uji.
Kekurangan :
- Keamanan adalah masalah dengan virtualisasi berbasis container dibandingkan dengan mesin virtual tradisional. Dalam container, Kernel dan komponen lain dari sistem operasi host dibagikan. Mereka memiliki akses root! Jadi container kurang terisolasi satu sama lain. Secara keseluruhan, itu tergantung pada jenis aplikasi dan modifikasi.
- Ada kurang fleksibilitas dalam sistem operasi. Jika Anda ingin menjalankan kontainer dengan sistem operasi yang berbeda, Anda harus memulai server baru.