DevOps

Docker untuk Developer: Dari Container hingga Docker Compose

admin
admin

6 Agu 20262 min baca

Docker untuk Developer: Dari Container hingga Docker Compose

Docker telah menjadi tools wajib bagi developer modern. Artikel ini akan membahas dasar-dasar Docker dari nol hingga bisa menggunakan Docker Compose untuk multi-container.

Apa itu Docker?

Docker adalah platform untuk mengembangkan, mengirim, dan menjalankan aplikasi dalam container. Container adalah unit standar yang membungkus kode dan dependency-nya sehingga aplikasi berjalan konsisten di environment manapun.

Docker container architecture
Docker mengisolasi aplikasi dalam container yang ringan dan portable

Container vs Virtual Machine

Berbeda dengan Virtual Machine yang menjalankan OS penuh, container berbagi kernel host OS sehingga jauh lebih ringan dan cepat.

Aspek Container Virtual Machine
Startup Detik Menit
Ukuran MB GB
Resource Sedikit Banyak
Isolasi Process-level Full OS

Instalasi Docker

Untuk macOS, download Docker Desktop atau OrbStack (alternatif yang lebih ringan). Verifikasi instalasi:

docker --version
docker run hello-world

Perintah Dasar Docker

Terminal dengan Docker CLI commands
Perintah Docker CLI untuk mengelola container

Berikut perintah yang paling sering digunakan:

# Build image dari Dockerfile
docker build -t nama-app .

# Run container
docker run -p 3000:3000 nama-app

# List container yang running
docker ps

# Stop container
docker stop <container_id>

# Hapus image
docker rmi <image_id>

Docker Compose

Untuk aplikasi yang butuh multiple container (misal: web + database), gunakan Docker Compose.

services:
  web:
    build: .
    ports:
      - "3000:3000"
    depends_on:
      - db

  db:
    image: postgres:16
    environment:
      POSTGRES_PASSWORD: secret

Jalankan dengan: docker compose up -d

Tip: Selalu gunakan .dockerignore untuk mengecualikan node_modules, .git, dan file tidak perlu dari build context.

Best Practices

  • Gunakan multi-stage build untuk image yang lebih kecil
  • Pin version gambar (misal node:20-alpine, bukan node:latest)
  • Manfaatkan Docker layer cache dengan urutan instruksi yang tepat
  • Jangan simpan secrets di Dockerfile

Artikel Terkait

(3)

Komentar

(0)

Komentar Anda akan dimoderasi.

Memuat komentar...