Halo, Kawan Belajar!
Di dunia pengembangan perangkat lunak modern, efisiensi dan portabilitas aplikasi sangat penting. Docker, dengan teknologi kontainerisasinya, menawarkan solusi yang inovatif. Docker terdiri dari beberapa komponen penting, salah satunya adalah Docker Image.
Jika kamu belum paham apa itu Docker Image, artikel ini akan sangat cocok untuk kamu karena akan membahas secara detail apa itu Docker Image, bagaimana cara menggunakan Docker Image, dan bagaimana kamu dapat mengoperasikannya untuk mempermudah pengembangan dan deployment aplikasi. Simak pemaparannya dibawah ini ya, Kawan Belajar!
Apa Itu Docker Image? #
Docker Image merupakan blueprint untuk menciptakan kontainer. Ia mencakup semua berkas dan instruksi yang dibutuhkan untuk membangun kontainer, meliputi sistem operasi, kode program, library, runtime, dan konfigurasi. Docker Image bisa diunduh dari Docker Registry seperti Docker Hub dan kamu juga bisa membuat Docker Image sendiri secara custom dengan menggunakan Dockerfile. Docker Image sangat ringan sehingga dapat dibawa ke berbagai platform dengan mudah.
Prinsip Penting Docker Image #
- Immutable: Docker Image bersifat immutable, artinya setelah dibuat, image tidak dapat diubah. Jika kamu ingin membuat perubahan, kamu juga harus membuat image baru.
- Layered: Docker Image terdiri dari beberapa lapisan (layers). Setiap lapisan mewakili perubahan yang dilakukan terhadap image, seperti menambahkan file, menginstal paket, atau menjalankan perintah. Lapisan ini di-stacking secara hierarkis, dengan lapisan dasar di bagian bawah dan lapisan terbaru di bagian atas.
Komponen Docker Image #
Berikut adalah komponen-komponen utama dari Docker Image:
- Lapisan (Layers): Docker Image terdiri dari beberapa lapisan yang saling bertumpuk. Setiap lapisan mewakili action yang dilakukan terhadap image, seperti menambahkan file, menginstal paket, atau menjalankan perintah. Lapisan ini bersifat immutable (tidak dapat diubah) dan di-stacking secara hierarkis, dengan lapisan dasar di bagian bawah dan lapisan terbaru di bagian atas.
- Image Dasar (Base Image): Base image adalah lapisan paling dasar dari Docker Image. Biasanya merupakan image sistem operasi (OS) seperti Ubuntu, Debian, atau Alpine Linux. Base image menyediakan fondasi untuk image dan berisi sistem operasi, library dasar, dan utilitas sistem.
- Dockerfile: Dockerfile merupakan file teks yang berisi kumpulan instruksi untuk membangun Docker Image. Dockerfile seperti resep yang menjabarkan langkah-langkah untuk membuat image. Setiap instruksi dalam Dockerfile akan menambahkan lapisan baru ke dalam image.
- ID Image (Image Identifier): Image Identifier adalah nomor unik yang diberikan untuk mengidentifikasi Docker Image.
- Tag: Tag adalah label yang digunakan untuk mengelola dan memberikan versi pada Docker Image.
Kegunaan Docker Image #
Kegunaan dari Docker Image adalah sebagai template atau blueprint untuk menjalankan Docker Container. Docker Image berisi semua yang dibutuhkan untuk menjalankan aplikasi, termasuk kode sumber, konfigurasi, environment variable, library, dan runtime. Ini memastikan bahwa aplikasi kamu dapat berjalan dengan konsisten di berbagai lingkungan dengan sistem operasi yang berbeda. Lalu dengan prinsip “Layered”, memungkinkan kamu untuk membangun image dari nol dengan menggunakan base image yang sudah ada agar lebih sesuai dengan environment aplikasi kamu.
Bagaimana Cara Menggunakan Docker Image? #
Penggunaan Docker Image melibatkan beberapa langkah utama:
- Mencari Image: Pertama, kamu bisa mencari image yang dibutuhkan pada Docker Registry seperti Docker Hub.
- Menarik (Pull) Image: Setelah menemukan image yang tepat, tarik (pull) image tersebut ke server atau mesin yang kamu gunakan untuk melakukan instalasi docker. Untuk menarik sebuah Docker Image dari Docker Registry, nantinya akan kami jelaskan juga pada section Perintah Dasar Docker Image.
- Menjalankan (Run) Image: Setelah image terunduh pada mesin Docker, kamu dapat membuat dan menjalankan sebuah kontainer baru menggunakan image tersebut.
Perbedaan Docker Image dan Docker Container #
Terdapat perbedaan konsep antara Docker Image dan Docker Container. Berikut kami jelaskan perbedan utama antara kedua konsep tersebut dalam sebuah tabel:
Fitur | Docker Image | Docker Container |
---|---|---|
Definisi | Blueprint atau template yang berisi instruksi untuk membuat container. | Instance yang berjalan dari Docker Image. |
Analogi | Seperti resep masakan. | Seperti masakan yang sudah jadi. |
Sifat | Immutable (tidak dapat diubah setelah dibuat). | Mutable (dapat diubah selama runtime). |
Pembuatan | Dibuat menggunakan Dockerfile atau docker commit . | Dibuat dengan menjalankan Docker Image menggunakan perintah docker run . |
Penyimpanan | Disimpan di Docker Registry (misalnya Docker Hub). | Tidak dapat dibagikan secara langsung. |
Modifikasi | Diperlukan perubahan pada Dockerfile untuk mengubah Image. | Dapat dimodifikasi langsung selama runtime. |
Contoh | Image ubuntu:latest berisi sistem operasi Ubuntu. | Container yang menjalankan aplikasi web berdasarkan Image ubuntu:latest . |
Perintah Dasar Docker Image #
Sebelum kamu mengikuti step–by-step untuk mengoperasikan perintah dasar Docker Image, mohon dipastikan terlebih dahulu hal-hal berikut telah terpenuhi:
- Docker Terinstal dan Berjalan dengan Baik : Pastikan Docker sudah terinstal dan berjalan dengan baik pada mesin kamu. Jika kamu belum melakukan instalasi docker, silakan baca artikel kami berjudul Cara Melakukan Instalasi Docker pada Sistem Operasi Linux
- Memiliki Akses Pengguna root atau Setara: Pastikan kamu memiliki akses ke user root atau user dengan privilege yang setara agar kamu bisa menjalankan operasi Docker Image.
Jika hal diatas sudah terpenuhi, berikut beberapa perintah dasar Docker Image yang dapat kamu pelajari:
- Mencari Docker Image
docker search <nama_image>:<tag>
Contoh Penggunaan:

Penjelasan:
Pada gambar tersebut, perintah docker search nginx akan menampilkan informasi tentang image dengan nama “nginx” yang tersedia di Docker Hub.
Selain menggunakan perintah yang dijalankan melalui terminal, untuk mencari docker image kamu juga bisa mencarinya secara langsung dengan mengakses Docker Registry seperti Docker Hub.
- Menarik (Pull) Docker Image
docker pull <nama_image>:<tag>
Contoh Penggunaan:

Penjelasan:
Pada gambar tersebut, perintah docker pull ubuntu:jammy-20250126 akan menarik (pull) image “ubuntu” dengan tag/versi “jammy-20250126” dari Docker Hub ke mesin Docker kamu.
- Menampilkan Daftar Docker Image yang Tersedia
docker images
Contoh Penggunaan:

Penjelasan:
Perintah diatas digunakan untuk menampilkan daftar Docker Image yang tersedia pada sistem kamu. Outputnya akan menampilkan informasi penting tentang setiap image, membantu kamu memahami dan mengelola image yang sudah tersimpan. Berikut adalah detail output-nya:
- REPOSITORY: Informasi ini biasanya merupakan kombinasi nama pengguna dan nama image di Docker Hub, seperti contohnya
docker/welcome-to-docker
. - TAG: Tag menjelaskan versi image. Ini membantu kamu membedakan versi image yang berbeda. Contohnya, latest menunjukkan versi terbaru dari sebuah image.
- IMAGE ID: Informasi berupa nomor unik yang diberikan kepada setiap docker image. ID ini adalah hash yang unik dan tidak berubah.
- CREATED: Tanggal dan waktu image dibuat.
- SIZE: Informasi tentang ukuran image dalam byte.
- Menghapus Docker Image
docker rmi <nama-image>:<tag>
Contoh Penggunaan:

Penjelasan:
Perintah diatas digunakan untuk menghapus image “ubuntu” dengan tag “jammy-20250126” dari daftar Docker Image yang tersedia pada sistem kamu.
- Menghapus Docker Image yang Tidak Digunakan
docker image prune -a
Contoh Penggunaan:

Penjelasan:
Perintah diatas akan menghapus semua image yang tidak digunakan oleh container, termasuk image yang masih memiliki tag tetapi tidak terkait dengan container yang ada.
- Menyimpan Docker Image ke File Tar
docker save <nama_image>:<tag> > <nama_file_tar>
Contoh Penggunaan:

Penjelasan:
Perintah diatas yakni docker save ubuntu:noble > /root/backup-image-ubuntu.tar digunakan untuk menyimpan Docker Image “ubuntu:noble” ke dalam file tar bernama “backup-image-ubuntu.tar” di direktori /root.
- Merestore File Tar ke Docker Image
docker load < <nama_file_tar>
Contoh Penggunaan:

Penjelasan:
Perintah diatas yakni docker load < /root/backup-image-ubuntu.tar digunakan untuk memuat Docker Image yang telah disimpan ke dalam file tar ke dalam mesin Docker kamu. File tar yang dimaksud dalam contoh ini adalah backup-image-ubuntu.tar yang terdapat pada direktori /root.
- Menampilkan Detail Informasi Image
docker image inspect <nama_image>:<tag>
Contoh Penggunaan:

Penjelasan:
Perintah diatas yakni docker image inspect mysql:latest digunakan untuk menampilkan informasi detail tentang Docker Image “mysql:latest”.
Informasi yang ditampilkan meliputi:
- Metadata Image: Informasi dasar seperti nama image, tag, ID image, tanggal pembuatan, ukuran, dan author.
- Konfigurasi Image: Konfigurasi image seperti entrypoint, command, expose port, environment variable, dan label.
- Lapisan Image: Daftar lapisan (layers) yang membentuk image, termasuk perintah yang digunakan untuk membuat setiap lapisan.
- Informasi Lain: Informasi tambahan seperti history image, metadata sistem file, dan informasi keamanan.
Kegunaan docker image inspect:
- Memahami Image: Perintah ini memungkinkan kamu untuk melihat detail lengkap tentang image, membantu kamu memahami struktur dan konfigurasinya.
- Debugging: Kamu dapat menggunakan informasi ini untuk mendiagnosis masalah yang mungkin terjadi dengan image, seperti kesalahan konfigurasi atau masalah dependensi.
- Analisis: Kamu dapat menggunakan informasi ini untuk menganalisis image dan menentukan apakah image tersebut sesuai dengan kebutuhan kamu.
Catatan:
– Silakan sesuaikan <nama_image> dan juga <tag> dengan Docker Image dan versi Docker Image yang kamu butuhkan.
– Docker Image hanya dapat dihapus jika tidak digunakan oleh Docker Container manapun pada sistem kamu.
Kesimpulan #
Docker Image merupakan komponen fundamental dalam teknologi kontainerisasi Docker. Memahami konsep Docker Image, komponennya, dan cara penggunaannya akan membuat kamu lebih memahami teknologi Docker sehingga harapannya dapat meningkatkan kemampuan kamu dalam membangun dan mengelola aplikasi yang portabel, efisien, dan mudah di-deploy di berbagai platform.