Mengenal Docker Dasar untuk Deployment Aplikasi Backend
## Introduction Dalam pengembangan aplikasi backend, satu tantangan umum adalah memastikan bahwa aplikasi berjalan sama di lingkungan pengembangan, st...

Introduction
Dalam pengembangan aplikasi backend, satu tantangan umum adalah memastikan bahwa aplikasi berjalan sama di lingkungan pengembangan, staging, dan produksi. Perbedaan versi library, konfigurasi sistem, atau dependensi dapat menyebabkan bug yang sulit direproduksi. Docker menyediakan solusi dengan membungkus aplikasi dan semua dependensinya ke dalam suatu container yang terisolasi, sehingga menghasilkan lingkungan yang konsisten di mana pun container dijalankan.
Pembahasan
Apa Itu Docker?
Docker adalah platform open-source yang memungkinkan developer membuat, mengirimkan, dan menjalankan aplikasi dalam kontainer. Kontainer adalah unit yang ringan dan portabel yang berisi kode aplikasi, runtime, library, dan setting yang diperlukan untuk menjalankan aplikasi tersebut.
Konsep Dasar
| Komponen | Penjelasan |
|---|---|
| Image | Template hanya-baca yang digunakan untuk membuat kontainer. Image berisi sistem operasi minimal, dependensi, dan kode aplikasi. |
| Container | Instance yang dapat dijalankan dari sebuah image. Container berjalan terisolasi dari host tetapi berbagi kernel OS host. |
| Dockerfile | Skrip teks yang berisi instrusi langkah demi langkah untuk membangun sebuah image. |
| Docker Hub | Registry publik tempat kita dapat menyimpan dan mendistribusikan image Docker. |
Mengapa Docker Berguna untuk Backend?
- Konsistensi Lingkungan: Sama sekali tidak ada "works on my machine" lagi karena image yang sama digunakan di semua tahap.
- Skalabilitas: Dengan container orchestration seperti Kubernetes atau Docker Swarm, kita dapat menyalin kontainer dengan mudah untuk menangani lalu lintas yang meningkat.
- Isolasi: Setiap layanan (misalnya API, database, worker) dapat berjalan dalam kontainer terpisah, sehingga tidak saling mengganggu.
- Efisiensi Resource: Kontainer lebih ringan daripada virtual machine karena tidak memerlukan OS tambahan per instance.
Contoh (jika ada)
Berikut contoh sederhana Dockerfile untuk aplikasi backend berbasis Node.js yang menampilkan pesan “Hello, World!” saat diakses melalui HTTP.
dockerfile# 1. Gunakan image Node.js resmi sebagai base FROM node:18-alpine # 2. Set working directory di dalam container WORKDIR /app # 3. Salin file package.json dan package-lock.json (jika ada) COPY package*.json ./ # 4. Install dependensi RUN npm ci --only=production # 5. Salin seluruh kode aplikasi COPY . . # 6. Expose port yang akan digunakan oleh aplikasi (misal 3000) EXPOSE 3000 # 7. Perintah yang dijalankan ketika container mulai CMD ["node", "server.js"]
file server.js (letakkan di samma folder dengan Dockerfile)
javascriptconst http = require('http'); const hostname = '0.0.0.0'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello, World!\n'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
Langkah-langkah untukBuild dan Jalankan
- Build image
bash
docker build -t hello-node . - Jalankan container
bash
docker run -p 3000:3000 --name hello-container hello-node - Buka browser atau gunakan :code
curl
Output yang diharapkan:bashcurl http://localhost:3000codeHello, World!
Kesimpulan
Docker adalah alat yang sangat berguna untuk mempermudah deployment dan pengelolaan aplikasi backend, terutama bagi pemula yang ingin memastikan aplikasi berjalan konsisten di berbagai lingkungan. Dengan memahami konsep image, container, dan Dockerfile, kita dapat mulai membungkus aplikasi kita ke dalam kontainer yang ringan, portabel, dan mudah diskalakan. Untuk langkah selanjutnya, pelajari Docker Compose untuk multi‑container aplikasi dan eksplorasi orchestration seperti Kubernetes untuk produksi skala besar.
*This blog is generated by n8n*