“Udah bikin Dockerfile, terus ngapain?” – Orang yang masih galau.
Kalau kamu udah punya Dockerfile, selamat! Tapi... gimana cara bikin Docker Image dari situ? Tenang, kamu nggak sendirian! Banyak yang masih bingung gimana cara "membangun" Docker Image dengan benar.
Di artikel ini, kita bakal bahas:
Apa itu Docker Image dan kenapa penting?
Cara membangun Docker Image dari Dockerfile
Perintah docker build dan opsi-opsinya
Tips optimasi Docker Image biar nggak kegedean
Troubleshooting error saat build Docker Image
Siap? Ayo ngedocker bareng!
1. Apa Itu Docker Image?
Docker Image adalah cetakan (template) untuk menjalankan container. Bisa dibilang ini adalah versi "baku" dari aplikasi kamu yang bisa dijalankan di mana saja.
Kenapa Docker Image itu penting?
Konsisten → Aplikasi berjalan sama di semua environment.
Portabel → Bisa dikirim ke tim lain atau di-deploy ke cloud.
Ringan → Dibanding Virtual Machine, image lebih kecil & cepat.
Docker Image dibuat dari Dockerfile! Jadi, kita harus "membangun" image dari file tersebut.
2. Cara Membangun Docker Image dari Dockerfile
Misalkan kita punya aplikasi Node.js sederhana dengan Dockerfile berikut:
# Gunakan base image Node.js versi ringan
FROM node:18-alpine
# Set direktori kerja di dalam container
WORKDIR /app
# Copy file package.json dan package-lock.json
COPY package*.json ./
# Install dependencies
RUN npm install
# Copy semua file ke dalam container
COPY . .
# Tentukan port yang akan digunakan
EXPOSE 3000
# Jalankan aplikasi saat container dimulai
CMD ["node", "server.js"]
Langkah 1: Buka Terminal dan Pindah ke Direktori Proyek
Pastikan kamu berada di folder yang berisi Dockerfile.
cd /path/to/proyek
Langkah 2: Jalankan Perintah Build Docker Image
Gunakan perintah berikut untuk membangun Docker Image:
docker build -t my-node-app .
Penjelasan:
docker build
→ Perintah untuk membangun image.-t my-node-app
→ Memberi namamy-node-app
ke image..
→ Menunjukkan bahwa Dockerfile ada di direktori saat ini.
Output-nya akan seperti ini:
Sending build context to Docker daemon 4.096kB
Step 1/7 : FROM node:18-alpine
Step 2/7 : WORKDIR /app
Step 3/7 : COPY package*.json ./
Step 4/7 : RUN npm install
Step 5/7 : COPY . .
Step 6/7 : EXPOSE 3000
Step 7/7 : CMD ["node", "server.js"]
Successfully built a1b2c3d4e5f6
Successfully tagged my-node-app:latest
Yeay! Docker Image kamu sudah jadi!
Langkah 3: Cek Hasil Build Docker Image
Cek apakah image kamu sudah terdaftar dengan perintah:
docker images
Output-nya kira-kira seperti ini:
REPOSITORY TAG IMAGE ID CREATED SIZE
my-node-app latest a1b2c3d4e5f6 10 seconds ago 120MB
Image berhasil dibuat! Sekarang kita bisa menjalankan container dari image ini.
Langkah 4: Jalankan Container dari Docker Image
Gunakan perintah berikut untuk menjalankan container:
docker run -d -p 3000:3000 my-node-app
Penjelasan:
-d
→ Menjalankan container di background (detached mode).-p 3000:3000
→ Memetakan port lokal ke container.my-node-app
→ Nama image yang kita buat tadi.
Sekarang coba buka http://localhost:3000 di browser. Taraaa! Aplikasi berjalan di dalam container!
3. Opsi Tambahan dalam docker build
Kamu bisa mengoptimalkan docker build dengan beberapa opsi berikut:
Memberi tag versi tertentu:
docker build -t my-node-app:v1 .
Ini berguna jika kamu ingin versi v1, v2, v3, dst.
Menghapus layer cache (force rebuild):
docker build --no-cache -t my-node-app .
Gunakan ini jika perubahan dalam image nggak terdeteksi.
Melihat proses build secara detail:
docker build --progress=plain -t my-node-app .
4. Tips Optimasi Docker Image
Gunakan base image yang kecil
Misalnya, node:18-alpine
jauh lebih kecil dibanding node:18
.
Gunakan .dockerignore
untuk mengabaikan file yang nggak perlu
Contohnya:
node_modules
.git
.env
Supaya image nggak ikut membawa file yang nggak perlu!
Susun perintah COPY
dan RUN
dengan benar
Urutan yang buruk bisa bikin Docker build lebih lambat.
Gunakan multi-stage build untuk image yang lebih ringan
Misalnya, untuk aplikasi dengan build step seperti React atau Vue.js.
5. Troubleshooting: Mengatasi Error Saat Build Docker Image
Error: "No such file or directory"
Pastikan Dockerfile ada di direktori yang benar.
Error: "Cannot find module"
Mungkin kamu lupa menjalankan npm install
atau pip install
.
Error: "Permission denied"
Tambahkan RUN chmod +x <file>
jika ada file yang perlu permission execute.
Error: "Failed to fetch image"
Coba jalankan docker pull node:18-alpine
untuk memastikan image base tersedia.
6. Kesimpulan: Docker Image = Deploy Lebih Mudah!
Intinya:
Docker Image dibuat dari Dockerfile.
Gunakan docker build -t nama-image .
untuk membangun image.
Cek image dengan docker images
.
Jalankan container dengan docker run -d -p port:port nama-image
.
Gunakan optimasi dan troubleshooting supaya build lebih cepat dan lancar.
Sekarang giliran kamu!
Udah berhasil build Docker Image sendiri? Atau masih nemu error?
0 Comments