Advertisement

Apa Itu Dockerfile dan Cara Kerjanya? – Docker untuk Pemula

 File:Docker (container engine) logo.svg

 

“Masa harus bikin container manual tiap kali deploy? Capek, Bos!”

Kalau kamu sering bikin dan menjalankan container secara manual, pasti pernah merasa lelah. Nah, Docker punya solusi keren buat ini: Dockerfile!

Dengan Dockerfile, kita bisa mengotomatisasi pembuatan Docker Image, jadi nggak perlu bikin container dari awal terus-terusan. Ibaratnya kayak resep masakan, kamu tinggal tulis bahan dan langkah-langkahnya, lalu Docker akan memasaknya buat kamu!

Di artikel ini, kita bakal bahas:
  Apa itu Dockerfile dan kenapa penting?
  Struktur dasar Dockerfile
  Cara membuat Docker Image dari Dockerfile
  Contoh praktik: Bikin image aplikasi Node.js
  Tips & trik biar Dockerfile kamu lebih efisien!

Yuk, kita bahas satu per satu!

1. Apa Itu Dockerfile?

Dockerfile adalah file teks sederhana yang berisi instruksi untuk membangun Docker Image.

Kalau Docker Image itu seperti kue, maka Dockerfile adalah resepnya.

 Kenapa Dockerfile penting?
  Otomatisasi → Nggak perlu setup ulang setiap kali bikin container.
  Konsistensi → Semua developer pakai image yang sama.
  Portabilitas → Bisa dijalankan di mana saja, asalkan ada Docker.
  Efisiensi → Mengurangi kesalahan manual.

2. Struktur Dasar Dockerfile

Dockerfile terdiri dari beberapa instruksi dasar. Ini contoh sederhananya:

# 1️ Pilih base image
FROM node:18

# 2️ Set direktori kerja dalam container
WORKDIR /app

# 3️ Copy file aplikasi ke dalam container
COPY . .

# 4️ Install dependencies
RUN npm install

# 5️ Tentukan perintah saat container dijalankan
CMD ["node", "server.js"]

 Penjelasan perintahnya:

  • FROM → Pilih base image (misal node:18).
  • WORKDIR → Tentukan folder kerja di dalam container.
  • COPY → Copy semua file dari host ke container.
  • RUN → Jalankan perintah dalam container (misal npm install).
  • CMD → Tentukan perintah default saat container dijalankan.

Sekarang, kita coba bikin Docker Image dari Dockerfile ini!

3. Cara Membuat Docker Image dari Dockerfile

A. Buat File Dockerfile

Buka terminal dan buat folder proyek:

mkdir my-docker-app
cd my-docker-app

Buat file Dockerfile di dalamnya:

touch Dockerfile

Edit Dockerfile dan tambahkan kode ini:

FROM node:18
WORKDIR /app
COPY . .
RUN npm install
CMD ["node", "server.js"]

B. Bangun Docker Image

Jalankan perintah berikut di dalam folder proyek:

docker build -t my-app .

 Penjelasan:

  • docker build → Perintah untuk membangun image.
  • -t my-app → Menamai image dengan nama my-app.
  • . → Gunakan Dockerfile di direktori saat ini.

C. Jalankan Container dari Image

Setelah image berhasil dibuat, kita bisa menjalankannya sebagai container:

docker run -d -p 3000:3000 my-app

 Sekarang aplikasi kita sudah berjalan di dalam container!

4. Contoh Praktik: Membuat Image Aplikasi Node.js

Misalkan kita punya aplikasi Node.js sederhana dengan file server.js:

const http = require('http');

const server = http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.end('Hello from Docker!\n');
});

server.listen(3000, () => {
  console.log('Server running on port 3000');
});

Langkah 1: Buat Dockerfile

Buat file Dockerfile dan tambahkan kode berikut:

# Gunakan Node.js sebagai base image
FROM node:18

# Tentukan direktori kerja dalam container
WORKDIR /app

# Copy file aplikasi ke container
COPY . .

# Install dependencies
RUN npm install

# Jalankan aplikasi saat container dimulai
CMD ["node", "server.js"]

Langkah 2: Build dan Jalankan Container

docker build -t my-node-app .
docker run -d -p 3000:3000 my-node-app

 Sekarang aplikasi sudah berjalan di http://localhost:3000!

5. Tips & Trik Menulis Dockerfile yang Efisien

 Gunakan Base Image yang Ringan
Hindari image yang terlalu besar! Misalnya, gunakan node:18-alpine daripada node:18.

FROM node:18-alpine

 Keuntungan:
  Lebih kecil & cepat.
  Menghemat bandwidth & storage.

 Gunakan .dockerignore untuk Mengecualikan File yang Tidak Perlu
Buat file .dockerignore supaya Docker nggak perlu copy semua file (misalnya node_modules).

node_modules
.git
.env

 Gunakan ENTRYPOINT untuk Aplikasi yang Lebih Fleksibel
CMD bisa diganti dengan ENTRYPOINT kalau ingin menjalankan perintah yang lebih fleksibel.

ENTRYPOINT ["node", "server.js"]

6. Kesimpulan: Dockerfile Bikin Hidup Lebih Mudah!

 Intinya:
  Dockerfile adalah skrip untuk membangun Docker Image secara otomatis.
  Struktur dasar Dockerfile terdiri dari FROM, WORKDIR, COPY, RUN, dan CMD.
  Gunakan Dockerfile untuk membuat image aplikasi dengan cepat dan konsisten.
  Optimasi Dockerfile dengan base image yang lebih ringan dan .dockerignore.

Sekarang kamu sudah paham cara bikin Dockerfile dan cara kerjanya!

Post a Comment

0 Comments