5 Best Practices Docker yang Harus Kamu Tahu

docker

1. Gunakan Multi-Stage Builds untuk Membuat Image Docker yang Lebih Kecil

Docker memiliki fitur multi-stage build yang sangat berguna untuk membuat image Docker yang lebih efisien. Dengan menggunakan multi-stage build, kamu dapat membuat image yang lebih kecil, yang pada akhirnya dapat menghemat waktu dan ruang penyimpanan.Contoh Dockerfile untuk aplikasi Go yang menggunakan multi-stage build adalah sebagai berikut:

# Stage build
FROM golang:1.16 AS builder
WORKDIR /app
COPY . .
RUN go build -o main .

# Final stage
FROM alpine:latest
WORKDIR /root/
COPY --from=builder /app/main .
CMD ["./main"]

Dalam contoh di atas, kita menggunakan image Go untuk membangun aplikasi, lalu kita copas hanya file binari yang telah dibangun ke dalam image Alpine yang lebih kecil. Dengan demikian, kita dapat menghemat ruang penyimpanan dan membuat proses deployment lebih cepat

2. Gunakan .dockerignore untuk Menghindari File yang Tidak Perlu

File .dockerignore adalah seperti .gitignore untuk Git, yaitu untuk menghindari file yang tidak perlu dimasukkan ke dalam konteks build Docker. Ini sangat penting karena dapat mempercepat proses build, mencegah file sensitif masuk ke dalam image, dan mengurangi ukuran akhir image.Contoh file .dockerignore adalah sebagai berikut:

.git
*.md
*.log
node_modules
test

Dengan menggunakan file .dockerignore, kamu dapat memastikan bahwa proses build Docker lebih cepat dan image yang dihasilkan lebih bersih dan lebih aman

3. Implementasikan Health Check dalam Dockerfile

Health check adalah fitur penting dalam Docker yang memungkinkan kamu untuk memastikan bahwa kontainer tidak hanya berjalan, tetapi juga berfungsi dengan benar. Dengan health check, kamu dapat memastikan bahwa aplikasi berfungsi dengan benar dan dapat memulai ulang kontainer jika terjadi kesalahan.Contoh implementasi health check dalam Dockerfile untuk server Nginx adalah sebagai berikut:

FROM nginx:latest
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
CMD curl -f http://localhost/ || exit 1

Dengan health check, kamu dapat memastikan bahwa kontainer dapat berfungsi dengan benar dan dapat memulai ulang kontainer jika terjadi kesalahan. Ini juga memungkinkan kamu untuk mengarahkan lalu lintas ke kontainer lain jika kontainer yang sedang berjalan tidak berfungsi

4. Gunakan Docker Compose untuk Pengembangan Lokal

Docker Compose adalah alat yang sangat berguna untuk mendefinisikan dan menjalankan aplikasi Docker multi-kontainer. Ini sangat berguna dalam pengembangan lokal karena memungkinkan kamu untuk menjalankan beberapa layanan yang terkait dalam satu file. Contoh file compose.yaml untuk aplikasi web yang menggunakan PostgreSQL adalah sebagai berikut:

version: '3'
services:
web:
build: .
ports:
- "8000:8000"
volumes:
- .:/code
environment:
- DEBUG=True

db:
image: postgres:13
environment:
- POSTGRES_DB=myapp
- POSTGRES_PASSWORD=secret

Dengan menggunakan Docker Compose, kamu dapat menjalankan semua layanan dalam satu file dan memastikan bahwa lingkungan pengembangan kamu lebih konsisten dan lebih mudah diatur

5. Jangan Terlalu Bergantung pada Tag Terbaru

Menggunakan tag terbaru mungkin terdengar nyaman, tetapi ini dapat menyebabkan masalah yang tidak terduga dan membuat proses build kurang dapat diprediksi. Alasannya adalah karena tag terbaru tidak merujuk pada versi spesifik dan dapat berubah tanpa peringatan.Sebaliknya, lebih baik menggunakan versi spesifik dalam Dockerfile atau file compose.yaml. Contoh penggunaan versi spesifik adalah sebagai berikut:

FROM node:18.20.4

Dengan menggunakan versi spesifik, kamu dapat memastikan bahwa semua anggota tim menggunakan versi yang sama dan dapat mereproduksi proses build dengan lebih mudah

Bonus: Lakukan Scan Keamanan Secara Teratur

Keamanan harus menjadi prioritas utama ketika bekerja dengan image Docker. Melakukan scan keamanan secara teratur dapat membantu kamu mengidentifikasi dan mengatasi kerentanan dalam kontainer sebelum menjadi masalah.Salah satu alat yang sangat berguna untuk tujuan ini adalah Docker Scout, yang terintegrasi langsung ke Docker Desktop dan CLI Docker. Contoh penggunaan Docker Scout untuk mengscan image Nginx adalah sebagai berikut:

docker scout cve nginx:latest

Dengan melakukan scan keamanan secara teratur, kamu dapat memastikan bahwa lingkungan produksi kamu lebih aman dan dapat mengambil keputusan yang lebih tepat tentang kapan harus memperbarui base image atau dependensi

Dengan mengikuti praktik-praktik di atas, kamu dapat membuat penggunaan Docker lebih efisien, lebih aman, dan lebih mudah dijalankan. Mulai dari menggunakan multi-stage builds hingga melakukan scan keamanan secara teratur, setiap praktik dapat membantu kamu dalam membuat aplikasi container yang lebih baik dan lebih stabil.


Discover more from teknologi now

Subscribe to get the latest posts sent to your email.

Related Posts

AI Monitoring Karyawan 2026: 7 Tools Boss Pakai + Cara Proteksi

AI Monitoring Karyawan 2026: 7 Tools Boss Pakai + Cara Proteksi AI monitoring karyawan 2026 bukan lagi fiksi ilmiah. Dengan Zoom yang baru saja bermitra dengan World…

HP Lipat 2026: iPhone Fold vs Samsung – Mana Worth It?

HP Lipat 2026: iPhone Fold vs Samsung – Mana Worth It? HP lipat 2026 menjadi salah satu kategori smartphone paling dinanti tahun ini. Dengan iPhone Fold yang…

Zoom AI Verifikasi 2026: Teknologi Anti-Bot untuk WFH

Zoom AI Verifikasi 2026: Teknologi Anti-Bot untuk WFH Zoom AI verifikasi 2026 menjadi breakthrough terbesar dalam dunia meeting virtual tahun ini. Zoom resmi mengumumkan kolaborasi dengan World…

Skandal Startup 2026: Drama Funding Guncang Dunia Tech

Skandal Startup 2026: Drama Funding Guncang Dunia Tech Skandal startup 2026 menjadi sorotan utama setelah bocoran dokumen funding mengungkap praktik manipulatif yang dilakukan sejumlah unicorn teknologi. TechCrunch…

Teknologi adhesive geCKo Materials untuk aplikasi luar angkasa

Startup Ini Dipakai Astronot ISS – Worth It Atau Tidak?

Startup Ini Dipakai Astronot ISS – Worth It Atau Tidak? Pernahkah kamu membayangkan teknologi yang dikembangkan di garasi startup bisa berakhir di Stasiun Luar Angkasa Internasional (ISS)?…

Drama Startup Tech: Skandal Funding yang Wajib Diketahui 2026

Drama Startup Tech: Skandal Funding yang Wajib Diketahui 2026 Industri teknologi tidak selalu berjalan mulus. Di balik headline tentang drama startup yang meraih pendanaan ratusan juta dolar,…

Leave a Reply

Your email address will not be published. Required fields are marked *

Discover more from teknologi now

Subscribe now to keep reading and get access to the full archive.

Continue reading