bikin dockerfile sendiri dari nol | java php laravel linux mysql sql bootstrap html css query java php laravel linux mysql sql bootstrap html css query: bikin dockerfile sendiri dari nol

Tuesday, May 19, 2026

bikin dockerfile sendiri dari nol

📦 Seri Belajar Docker · Artikel 4 dari 10

Bikin Dockerfile Sendiri:
Dari Nol Sampai Jalan di Container

Panduan lengkap cara membuat Dockerfile dari nol — cocok banget buat kamu yang baru mulai belajar Docker dan pengen langsung praktik.

#Dockerfile #Docker #BelajarDocker #ZeroToZorro
⏱️
Estimasi Baca
10–12 Menit
🎯
Level
Pemula
📅
Update
2026

Pernah nggak kamu capek dengerin teman dev yang bilang, "Di komputerku jalan kok, kok di servermu nggak?" — lalu kamu cuma bisa senyum kecut sambil tepuk jidat? Nah, masalah klasik ini adalah alasan utama kenapa Docker dan cara membuat Dockerfile wajib kamu kuasai. Dockerfile adalah resep rahasia yang bikin aplikasimu bisa jalan persis sama di manapun — laptop developer, server produksi, hingga cloud. Di artikel ke-4 dari seri Docker from Zero to Zorro ini, kita bakal belajar bareng cara membuat Dockerfile dari nol sampai benar-benar jalan di dalam container. Siap? Gas!

📖 Definisi Penting

Dockerfile adalah file teks berisi sekumpulan instruksi yang ditulis secara berurutan, digunakan oleh Docker untuk membangun sebuah image secara otomatis. Bayangkan Dockerfile sebagai resep masak — kamu mendaftar bahan-bahan dan langkah-langkahnya, lalu Docker yang masak sampai matang jadi image siap pakai.

🧠 Apa Itu Dockerfile dan Kenapa Kamu Butuh Cara Membuat Dockerfile?

Bayangkan kamu adalah seorang chef yang punya restoran di 10 kota sekaligus. Tiap cabang harus menyajikan menu yang identik persis — rasa, porsi, penyajian. Kamu nggak mungkin hadir di 10 tempat sekaligus untuk masak sendiri. Solusinya? Tulis resep yang sangat detail dan pastikan semua juru masak ikuti langkah yang sama.

Itulah peran Dockerfile dalam dunia development. Kamu menulis "resep" satu kali, lalu Docker bisa mencetak environment yang identik di mana pun. Tanpa Dockerfile, setiap developer di tim kamu bisa jadi punya versi Node.js berbeda, konfigurasi berbeda, dan akhirnya — bug yang susah direproduksi.

🔥 Fakta Menarik

Menurut survei Stack Overflow Developer Survey, Docker secara konsisten masuk 3 besar teknologi yang paling banyak digunakan oleh para profesional software development di seluruh dunia. Menguasai cara membuat Dockerfile bukan cuma nilai plus — ini sudah jadi ekspektasi dasar di banyak lowongan kerja developer.

📋 Instruksi-Instruksi Wajib dalam Dockerfile

Instruksi Fungsi Contoh
FROM Menentukan base image FROM node:18-alpine
WORKDIR Set direktori kerja dalam container WORKDIR /app
COPY Salin file dari host ke container COPY . .
RUN Jalankan perintah saat build RUN npm install
EXPOSE Deklarasikan port yang digunakan EXPOSE 3000
CMD Perintah default saat container start CMD ["node","index.js"]

🛠️ Cara Membuat Dockerfile Langkah demi Langkah (Praktik Nyata!)

Oke, cukup teori. Sekarang kita langsung praktik! Kita akan bikin Dockerfile untuk aplikasi Node.js sederhana (Express.js). Kenapa Node.js? Karena ringan, populer, dan cocok banget untuk belajar konsep Dockerfile tanpa terdistraksi kompleksitas bahasa lain.

1

Buat Struktur Proyek

Pertama, buat folder proyek dan dua file penting: index.js sebagai aplikasi, dan package.json sebagai metadata proyek.

📁 Struktur Folder bash
my-app/
├── Dockerfile
├── index.js
├── package.json
└── .dockerignore
2

Tulis File index.js

Aplikasi Express.js paling sederhana yang mungkin — hanya menampilkan pesan "Hello from Docker!" ketika diakses.

📄 index.js javascript
const express = require('express');
const app = express();
const PORT = process.env.PORT || 3000;

app.get('/', (req, res) => {
  res.send('🐳 Hello from Docker! Artikelmu berhasil jalan di container.');
});

app.listen(PORT, () => {
  console.log(`Server running on port ${PORT}`);
});
3

Inilah Bintang Utamanya — Tulis Dockerfile-mu!

Buat file bernama Dockerfile (tanpa ekstensi!) di root folder proyekmu, lalu isi dengan instruksi berikut. Perhatikan setiap baris — kita bakal bedah artinya satu per satu.

🐳 Dockerfile dockerfile
# 1. Gunakan Node.js 18 versi ringan (Alpine Linux)
FROM node:18-alpine

# 2. Set direktori kerja di dalam container
WORKDIR /app

# 3. Salin package.json dulu (trick optimasi cache!)
COPY package*.json ./

# 4. Install dependensi
RUN npm install --production

# 5. Salin semua source code ke container
COPY . .

# 6. Buka port 3000
EXPOSE 3000

# 7. Perintah yang dijalankan saat container start
CMD ["node", "index.js"]
💡 Tips Penting

Kenapa COPY package*.json ./ ditulis sebelum COPY . .? Ini adalah teknik layer caching! Docker menyimpan cache tiap layer. Kalau kamu mengubah kode tapi tidak mengubah package.json, Docker tidak perlu menjalankan npm install ulang — hemat waktu build sampai 10x lebih cepat!

4

Tambahkan .dockerignore

Sama seperti .gitignore, file ini memberitahu Docker file apa yang tidak perlu disalin ke dalam image — supaya image kamu tetap ramping.

🚫 .dockerignore text
node_modules
.env
npm-debug.log
# Tambahkan file lain yang tidak diperlukan

🚀 Build & Jalankan: Cara Membuat Dockerfile Jadi Container Nyata

Dockerfile sudah jadi, sekarang saatnya "memasak" resep itu jadi sebuah image, lalu menjalankannya sebagai container. Buka terminal kamu, arahkan ke folder proyek, dan ikuti dua langkah ini.

5

Build Image dari Dockerfile

💻 Terminal
# Format: docker build -t nama-image:tag .
docker build -t my-node-app:1.0 .

# Cek image yang sudah dibuat
docker images
6

Jalankan Container dari Image

💻 Terminal
# -d: jalankan di background
# -p 8080:3000: port host 8080 → port container 3000
docker run -d -p 8080:3000 --name my-running-app my-node-app:1.0

# Lalu buka browser: http://localhost:8080
# Kamu akan lihat: 🐳 Hello from Docker!
Insight Penting

Flag -p 8080:3000 bekerja seperti penerusan surat. Kamu bilang ke Docker: "Kalau ada yang ketuk pintu nomor 8080 di komputerku, terusin ke nomor 3000 di dalam container." Dengan cara ini, kamu bisa jalankan banyak container di port internal yang sama, tapi akses dari port yang berbeda di host!

⚖️ RUN vs CMD vs ENTRYPOINT: Jangan Sampai Salah Paham

Tiga instruksi ini sering bikin bingung para pemula. Ini bedanya dalam satu analogi sederhana: membangun restoran 🍜

RUN
Dijalankan saat build. Seperti proses renovasi restoran — pasang kompor, cat dinding. Hasilnya disimpan permanen di image.
CMD
Dijalankan saat container start. Seperti menu default restoran — bisa diganti dengan perintah lain saat menjalankan container.
ENTRYPOINT
Perintah utama yang tidak bisa diganti saat runtime. Seperti konsep inti restoran — selalu masak mi, apapun variasinya.
⚠️ Perhatian

Satu Dockerfile hanya boleh punya satu instruksi CMD. Kalau kamu tulis lebih dari satu, hanya yang terakhir yang akan dieksekusi Docker. Ini sumber bug yang sering tidak disadari pemula!

📚

Bagian dari Seri Lengkap

Artikel ini adalah Artikel 4 dari 10 dalam seri Docker from Zero to Zorro. Kunjungi halaman utama untuk daftar isi lengkap semua artikel!

📖 Artikel Utama & Daftar Isi
Seri Belajar Docker: Docker from Zero to Zorro
🏷️ Tags Artikel
#caramembuatDockerfile #Dockerfile #BelajarDocker #ZeroToZorro #DockerPemula #NodeJS #DevOps
🎉

Selamat! Kamu Sudah Bisa Bikin Dockerfile Sendiri

Di artikel ini, kamu sudah belajar:

✅ Apa itu Dockerfile ✅ Semua instruksi penting ✅ Cara membuat Dockerfile ✅ Build & run container ✅ Layer caching trick

Menguasai cara membuat Dockerfile adalah fondasi paling krusial sebelum kamu melangkah ke Docker Compose, Kubernetes, atau CI/CD pipeline. Kamu sudah melewati tahap yang banyak orang lewatkan!

💬 Ada pertanyaan atau stuck di langkah tertentu? Drop di kolom komentar — siapa tahu pertanyaanmu membantu pembaca lain juga! Dan kalau artikel ini bermanfaat, share ke teman developer-mu ya 🙌

No comments:

Post a Comment

saifiahmada.com adalah blog belajar programming Indonesia, membahas lengkap materi bahasa pemrograman: code HTML, CSS, Bootstrap, Desain, PHP, MySQL, coding Java, Query, SQL, dan dunia linux