
Daftar Isi
Anda ingin membuat image Docker versi Anda sendiri, tetapi bingung harus mulai dari mana? Banyak pengguna baru Docker sering merasa kewalahan ketika membaca dokumentasi resminya yang terlihat rumit dan penuh istilah teknis. Akibatnya, mereka hanya mengandalkan image yang sudah jadi di Docker Hub — padahal membuat image custom itu tidak sesulit yang dibayangkan.
Kalau Anda punya kebutuhan khusus, seperti menambahkan dependensi tertentu, mengubah konfigurasi, atau mengoptimalkan ukuran image, maka membuat image Docker sendiri adalah langkah cerdas.
Artikel ini akan membantu Anda memahami cara membuat image Docker dari base image langkah demi langkah, mulai dari konsep dasar, pembuatan file Dockerfile, hingga proses build dan pengujian image Anda sendiri. Semua dijelaskan dengan bahasa yang sederhana dan contoh nyata agar Anda bisa langsung mempraktikkannya tanpa bingung.
Apa Itu Base Image?
Sebelum mulai, mari pahami dulu konsep penting ini.
Base image adalah fondasi dari sebuah Docker image. Ia bisa berupa sistem operasi minimal (misalnya ubuntu, alpine, atau debian), atau image aplikasi seperti python, node, dan sebagainya. Dari base image inilah kita menambahkan file, library, dan konfigurasi sesuai kebutuhan.
Contoh sederhana:
- Base image
python:3.11-slimcocok untuk membuat aplikasi Python. - Base image
nginx:latestbisa digunakan untuk membuat server web kustom.
Langkah-Langkah Membuat Image Docker Sendiri
1. Siapkan Lingkungan Docker
Pastikan Docker sudah terinstal dan berjalan di sistem Anda.
Cek dengan perintah:
docker --versionJika muncul versi Docker, berarti instalasi sudah benar.
2. Pilih Base Image
Tentukan base image yang sesuai kebutuhan proyek Anda.
Misalnya, Anda ingin membuat aplikasi berbasis Python:
FROM python:3.11-slimPerintah FROM digunakan untuk menentukan base image di baris pertama file Dockerfile.
3. Buat File Dockerfile
Dockerfile adalah file teks yang berisi instruksi langkah demi langkah untuk membangun image.
Buat file bernama Dockerfile di dalam folder proyek Anda:
nano DockerfileContoh isi Dockerfile sederhana:
# Menggunakan base image Python versi ringan
FROM python:3.11-slim
# Menentukan maintainer (opsional)
LABEL maintainer="namaanda@example.com"
# Menyalin file aplikasi ke dalam image
COPY . /app
# Menentukan direktori kerja di dalam container
WORKDIR /app
# Menginstal dependensi dari requirements.txt
RUN pip install -r requirements.txt
# Menentukan perintah utama saat container dijalankan
CMD ["python", "app.py"]4. Bangun (Build) Image Anda
Setelah Dockerfile siap, jalankan perintah berikut untuk membangun image:
docker build -t my-python-app .Penjelasan:
-t my-python-app→ memberi nama/tag pada image..→ menunjukkan direktori saat ini sebagai konteks build.
Jika berhasil, Anda akan melihat pesan seperti:
Successfully built <image_id>
Successfully tagged my-python-app:latest5. Jalankan Container dari Image
Setelah image berhasil dibuat, jalankan container-nya untuk memastikan semuanya berjalan dengan benar:
docker run -d -p 8080:8080 my-python-appArtinya:
-d→ menjalankan container di background mode.-p 8080:8080→ memetakan port lokal ke port container.
Cek apakah container aktif:
docker psJika aplikasi berjalan lancar, artinya image Docker custom Anda berhasil dibuat!
6. (Opsional) Menambahkan File .dockerignore
File .dockerignore digunakan agar file tertentu tidak ikut disalin ke dalam image (misalnya, file log atau direktori venv).
Contoh isi .dockerignore:
__pycache__/
*.log
venv/
.git/File ini membantu membuat image Anda lebih ringan dan cepat dibangun.
7. (Opsional) Push Image ke Docker Hub
Jika ingin membagikan image buatan Anda, Anda bisa mengunggahnya ke Docker Hub:
docker login
docker tag my-python-app username/my-python-app:latest
docker push username/my-python-app:latestSetelah itu, siapa pun bisa mengunduh dan menggunakan image Anda dengan:
docker pull username/my-python-appAnda sudah memahami cara membuat image Docker sendiri dari base image, lengkap dari nol hingga bisa dijalankan dan dibagikan. Dengan mempelajari ini, Anda bisa menghemat waktu, mengontrol isi container, dan memastikan setiap aplikasi berjalan di lingkungan yang konsisten.
Ingin memperdalam lagi?
Baca juga artikel kami tentang “Mengoptimalkan Ukuran Image Docker agar Lebih Ringan dan Cepat” untuk membuat image Anda semakin efisien.
