Tutorial Docker untuk Pemula: Deploy Aplikasi dalam 5 Menit

Tutorial Docker untuk Pemula: Deploy Aplikasi dalam 5 Menit

Masalah klasik “It works on my machine” hampir pasti pernah dialami oleh setiap developer. Aplikasi yang berjalan mulus di laptop sering kali bermasalah saat dipindahkan ke server staging atau production. Docker hadir sebagai solusi dengan konsep containerization yang memungkinkan aplikasi berjalan konsisten di berbagai environment.

Apa Itu Container?

Container dapat dianalogikan seperti kotak pengiriman standar di dunia logistik. Di dalamnya terdapat aplikasi beserta seluruh dependency, runtime, dan konfigurasi penting. Berbeda dengan virtual machine, container berbagi kernel dengan host sehingga lebih ringan dan cepat dijalankan.

Instalasi Docker

Di Windows dan macOS, cukup install Docker Desktop dari situs resmi. Di Linux, instalasi bisa dilakukan melalui repository distribusi atau skrip resmi Docker. Setelah terinstal, jalankan perintah berikut untuk memastikan Docker berjalan dengan baik:

docker version
docker run hello-world

Konsep Dasar Docker

Tiga konsep utama Docker adalah Image, Container, dan Registry.

  • Image: Blueprint atau resep aplikasi
  • Container: Instance aktif dari image
  • Registry: Tempat penyimpanan image (contoh: Docker Hub)

Alur kerja umumnya:
Dockerfile → Build Image → Push ke Registry → Jalankan Container

Perintah Dasar Docker

docker build -t my-app .
docker run -p 3000:3000 my-app
docker ps
docker logs <container_id>

Perintah-perintah ini sudah cukup untuk mulai menjalankan aplikasi dalam container.

Studi Kasus: Deploy Aplikasi Node.js

Misalnya kita memiliki aplikasi Express.js yang berjalan di port 3000. Berikut contoh Dockerfile sederhana:

FROM node:alpine

WORKDIR /app

COPY package*.json ./
RUN npm install

COPY . .

EXPOSE 3000

CMD ["npm", "start"]

Build dan jalankan dengan:

docker build -t my-express-app .
docker run -p 3000:3000 my-express-app

Sekarang aplikasi bisa diakses melalui browser di http://localhost:3000.

Best Practices

  • Gunakan base image minimal seperti alpine
  • Gunakan multi-stage build
  • Hindari menyimpan credential di image
  • Gabungkan RUN command untuk mengurangi layer
  • Bersihkan cache package manager

Tips & Troubleshooting

docker logs <container_id>
docker exec -it <container_id> sh

Pastikan port mapping benar dan firewall tidak memblokir akses. Gunakan volume mount saat development agar tidak perlu rebuild terus-menerus.

Kesimpulan

Docker adalah skill penting di dunia modern software development. Dengan memahami konsep image, container, dan registry, Anda sudah selangkah lebih siap memasuki ekosistem DevOps dan cloud-native development.

[1] Docker Inc., Docker Overview, 2023 
[2] Docker Best Practices Guide, 2023

Share this article:

Comments

No comments yet. Be the first to share your thoughts!