Image
Image dalam konteks Docker adalah file yang berisi paket perangkat lunak lengkap beserta semua dependensinya yang diperlukan untuk menjalankan sebuah aplikasi di dalam wadah Docker. Image Docker bersifat read-only (tidak dapat diubah), dan berisi semua instruksi yang diperlukan untuk menjalankan aplikasi, seperti kode aplikasi, runtime, library, variabel lingkungan, dan file konfigurasi.
Komponen Image Docker:
-
Sistem Operasi Dasar: Image Docker biasanya dibangun di atas sistem operasi Linux seperti Debian, Ubuntu, Alpine, atau distro Linux khusus lainnya. Sistem operasi ini menyediakan lingkungan dasar di mana semua paket perangkat lunak lainnya akan diinstal.
-
Paket Perangkat Lunak: Image Docker mengandung semua paket perangkat lunak yang diperlukan untuk menjalankan aplikasi tertentu. Misalnya, untuk menjalankan aplikasi web menggunakan Nginx, image Docker mungkin berisi Nginx web server, PHP interpreter, atau bahkan basis data jika diperlukan.
-
Library dan Dependensi: Semua library dan dependensi yang diperlukan oleh aplikasi juga dimasukkan ke dalam image Docker. Hal ini memastikan bahwa aplikasi akan memiliki semua yang dibutuhkan untuk berjalan, tanpa mengandalkan instalasi atau konfigurasi di mesin host.
-
Konfigurasi Aplikasi: Image Docker bisa saja menyertakan file konfigurasi yang diperlukan oleh aplikasi, seperti konfigurasi database, pengaturan lingkungan, atau file konfigurasi lainnya yang diperlukan untuk operasi aplikasi.
-
Metadata: Setiap image Docker memiliki metadata yang memberikan informasi tentang image tersebut, seperti versi, deskripsi, penulis, dan informasi lain yang relevan.
Cara Kerja Image Docker:
-
Immutable (Read-only): Image Docker tidak dapat diubah setelah dibuat. Setiap kali perubahan dibutuhkan, pengguna membuat versi baru dari image dengan menambahkan lapisan (layer) baru ke image yang sudah ada.
-
Layered File System: Docker menggunakan sistem file berlapis (layered file system) untuk membangun image. Setiap perintah dalam Dockerfile (file yang mendefinisikan instruksi untuk membangun image) menambahkan lapisan baru ke image yang sedang dibuat. Lapisan ini bersifat read-only dan terpisah, yang memungkinkan Docker untuk melakukan caching dan mempercepat proses pembuatan image.
-
Caching: Docker menggunakan caching untuk meningkatkan kecepatan pembuatan image. Jika tidak ada perubahan pada langkah tertentu dalam Dockerfile, Docker akan menggunakan cache dari langkah sebelumnya, menghindari proses pengulangan yang tidak perlu.
Menggunakan Image Docker:
-
Pull: Untuk menggunakan image Docker, pengguna dapat mengunduhnya dari registry Docker (seperti Docker Hub) ke mesin lokal menggunakan perintah
docker pull
. -
Run: Setelah diunduh, image dapat dijalankan sebagai wadah Docker dengan perintah
docker run
. Docker akan membuat instance dari image tersebut, yang kemudian dapat digunakan untuk menjalankan aplikasi. -
Build: Untuk membuat image Docker kustom, pengguna dapat membuat Dockerfile yang berisi instruksi untuk membangun image, seperti instalasi paket, menyalin file, atau menambahkan konfigurasi. Setelah itu, image dapat dibangun dengan perintah
docker build
.
Image Docker adalah komponen fundamental dalam pengembangan dan pengelolaan aplikasi berbasis kontainer menggunakan Docker. Hal ini memungkinkan pengembang untuk mengisolasi aplikasi dan dependensinya dalam lingkungan yang konsisten dan portabel.
No Comments