Mengenal Docker Image, Komponen dan Strukturnya

Docker Image
Docker Image

Docker image secara sederhana menjadi platform container yang bisa kamu pakai untuk menjalankan suatu layanan atau aplikasi secara lancar dalam sistem berbeda. 

Jadi, docker ini juga semacam template yang buat aplikasi yang isinya seluruh kebutuhan agar aplikasi tersebut bisa berjalan. 

Baik itu kode programnya, sistem operasi, library, dan lainnya. Ketika kamu menjalankan aplikasi memakai docker, maka aplikasi yang berjalan tidak akan terpengaruh oleh pengaturan server ataupun mesin lainnya. 

Ingin tahu lebih detail soal docker? Mari cek sini, Sob!

Apa Itu Docker Image?

docker image library

Docker image merupakan suatu platform open-source yang bakal memudahkan setiap pengembang untuk membuat, menjalankan, juga mengelola suatu layanan maupun aplikasi dengan konsep container. 

Nah, maksud dari container itu menjadi kotak berisikan aplikasi sekaligus berbagai kebutuhannya. Docker, akan memudahkan siapa saja menjalankan aplikasi kamu pada lingkungan yang terisolasi. 

Selain itu juga independen dan bisa membuat kamu tak perlu khawatir atas lingkungan servernya. Pasalnya, lingkungan tersebut tidak akan mempengaruhi aplikasimu sama sekali. 

Contoh sederhananya, anggaplah kamu membuat aplikasi website memakai Node.js, lalu ingin menjalankan aplikasinya pada server cloud. 

Biasanya, saat akan menjalankan aplikasi, maka akan ada masalah seperti versi sistem operasi yang berbeda, atau library pada server. 

Masalah semacam ini, akan membuat aplikasimu tidak bisa berjalan, Sob. Tapi, adanya Docker akan membuat aplikasi Node.js kamu ‘terbungkus’ dalam container yang tak akan berpengaruh oleh dua masalah seperti di atas. 

Cek Konten Lainnya:
Inilah Best Windows VPS Server di Indonesia

Komponen Docker Image

Sekarang, kita bahas soal komponen dari image docker itu sendiri, Sob. Ini adalah bagian teknis yang kamu perlukan untuk menjalankan suatu aplikasi di kontainer. Berikut penjelasannya: 

1. Kode (Code)

Menjadi inti dari image Docker. Bagian code inilah yang menjalankan logika dari suatu aplikasi. Nantinya, kode tersebut akan disalin ke Docker Image lewat perintah Dockerfile dengan perintah seperti Copy atau Add. 

2. Runtime

Selanjutnya, ada komponen Runtime yang merupakan lingkungan yang membuat aplikasi berjalan. 

Misalnya, penggunaan Node.js yang butuh Node.js runtime. Sedangkan kalau kamu pakai Python, maka butuh Python interpreter. 

Runtime ini menjadi lapisan pada image Docker agar aplikasi bisa berjalan dengan benar tanpa ada tambahan pengaturan pada sistem host. 

3. System Libraries

Pustaka sistem itu mencakup library yang aplikasi butuhkan serta runtime untuk beroperasinya. 

Pustaka ini seperti yang terpakai untuk pengelolaan input maupun output, jaringan, serta berbagai fungsi sistem lain. Dengan ini, maka aplikasi bisa berjalan konsisten di lingkungan apa pun. 

4. Tools 

Kemudian, ada alat atau tools pengemnagan seperti debugger atau compiler yang bisa kamu tambahkan pada Docker Image guna membantu build dan debugging. 

Misalnya, ada gcc (compiler C) atau sistem lain di lapisan terpisah agar pengembangan dan pemeliharaan aplikasi bisa lebih mudah. 

5. Dependensi

Menjadi paket eksternal atau pustaka yang aplikasimu perlukan. Contohnya, kalau aplikasimu berbasis JavaScript, maka paketnya butuh npm. Kalau pakai Python, maka butuh pustaka pip, dan seterusnya. 

Dependensi ini sering ada di image agar aplikasi tidak lagi perlu instal ulang setiap kali kontainer berjalan. 

6. Berkas Konfigurasi Lain

Terakhir yakni Docker Image pun menyimpan berkas konfigurasi yang kamu butuhkan dalam menjalankan aplikasi. 

Misalnya file log, konfigurasi variabel, atau tambahan skrip tertentu agar aplikasi bisa berjalan optimal.

Struktur dari Docker Image

Docker image itu sebenarnya punya beberapa lapisan atau layer yang jadi satu kesatuan. Setiap layer ini, isinya perubahan atau sejumlah instruksi yang akan dipakai untuk membangun aplikasi. 

Cek Konten Lainnya:
VPS Ubuntu Indonesia Murah dengan Performa Terbaik

Saat kamu menggunakan Docker untuk membuat aplikasi, maka setiap instruksinya punya sebutan sebagai Dockerfile. Nah, Dockerfile ini akan menambahkan lapisan baru ke dalam image tersebut. 

Lapisan itu sendiri, termasuk ke salah satu komponen dari Docker. Berikut penjelasan tentang komponen lebih lengkapnya: 

1. Base Image

Pertama, ada base image. Ini merupakan lapisan paling dasar yang asalnya dari Docker Hub. 

Docker Hub itu sendiri jadi registry publik atau tempat penyimpanan sekaligus distribusi dari Docker image. Ini seperti server atau perpustakaan tempat semua image Docker tersimpan. 

Lapisan dasar yang kamu ambil dari Docker Hub tersebut bisa berupa Ubuntu atau Alpine. Dengan adanya base image ini, maka base image bisa memberi pondasi untuk lapisan-lapisan tambahan yang aplikasimu butuhkan. 

Jika membuat image baru, maka kamu akan memulainya dari lapisan paling dasar ini yang sudah tersedia pada Docker Hub. 

2. Layers (Lapisan)

Setiap image docker itu pasti punya beberapa layer atau lapisan. Nah, dalam setiap lapisannya itu ada instruksi yang tertulis pada Docker File. 

Misalnya, ada perintah seperti Copy, Run, atau Add yang akan menambahkan lapisan baru ke image kamu. 

Lapisan satu ini punya sifat read-only, jadi tak akan bisa kamu ubah setelah membuatnya. Kecuali untuk writable yang ada di kontainer. Dengan ini, maka kamu tak bisa mengubah setiap perintah yang ada. 

3. Writable Layer

Saat suatu Docker image berjalan sebagai kontainer, maka Docker akan menambah satu lapisan yakni writable layer di atas image. 

Dengan lapisan ini, setiap perubahan yang kamu lakukan akan tersimpan ketika kontainer tengah berjalan. Lapisan writable ini bisa membuat beberapa kontainer berbagi image sama tapi tetap ada perubahan spesifik ke masing-masing kontainer. 

Cek Konten Lainnya:
Perbedaan Docker Swarm vs Kubernetes: Pilih yang Mana?

4. Metadata

Selanjutnya, ada juga metadata. Pengertiannya hampir sama dengan pemahaman mengenai metadata secara umum yakni berisikan informasi mengenai suatu image. 

Bisa berupa tag, nama, deskripsi, hingga informasi mengenai konfigurasi dari image dan bagaimana seharusnya aplikasi berjalan. 

Metadata ini akan membantumu untuk mengelola image. Selain itu juga memudahkan untuk menelusuri versi berbeda pada image yang sama. 

5. Manifest

Komponen docker image yang terakhir adalah Manifest. Maksud dari manifest yakni file JSON yang mendeskripsikan semua image docker. 

Itu pun termasuk tag, hash dari semua lapisan, dan konfigurasi bagaimana image harus kamu jalankan di kontainer. 

Mau Jalanin Aplikasi di Docker tanpa Ribet? Jagoan Hosting Aja!

VPS-Docker
VPS-Docker

Demi mendukung lancarnya aplikasi ketika menggunakan Docker, maka jangan lupa pilih VPS terbaik dari Jagoan Hosting. Mari, dapatkan VPS Hosting Docker di Jagoan Hosting sekarang juga! Cuma sekali klik, Docker auto ke-deploy!

Jadi, kamu udah nggak perlu repot-repot deploy aplikasi sendiri dengan VPS Docker Jagoan Hosting. 

FAQ

Apa perbedaan docker image dan docker container?

Docker image itu template statis dengan berbagai komponen alias template untuk membuat container. Sedangkan Docker Container itu merupakan aplikasi yang tengah berjalan berdasarkan image terkait. 

Apa fungsi Docker Image

Merupakan template read-only berisikan semua kebutuhan dalam menjalankan suatu aplikasi. 

Bagaimana cara kerja Docker Image

Image docker terdiri dari berbagai layer yang tersusun dalam struktur tertentu. Saat instruksi di Dockerfile kamu jalankan, maka lapisan baru akan langsung bertambah ke image. 

Saat kontainer terbuat dari image, maka lapisan-lapisan yang ada akan tersusun bersama untuk membuat suatu sistem. Sifatnya immutable atau tak bisa kamu ubah.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

You May Also Like
Server Sekolah Mudah Dihack
Read More
7 Penyebab Server Sekolah Mudah Dihack
Server dihack tidak heran sangat membuat frustasi banyak orang. Jika server anda dihack, kemungkinan besar website pun akan…
VPS Managed
Read More
Mengenal Managed VPS, Kelebihan dan Rekomendasinya
Dewasa ini, VPS atau virtual private server semakin populer bagi pemilik website yang ingin fleksibilitas. Managed VPS menjadi…