DevOps

Belajar Docker untuk Pemula

Dasar penggunaan Docker.

Rama Mai07 Nov 20238 min read

Apa itu Docker?

Docker adalah platform containerization yang digunakan untuk membuat, menjalankan, dan mendistribusikan aplikasi dalam bentuk container. Container memungkinkan aplikasi berjalan secara konsisten di berbagai environment tanpa perlu khawatir perbedaan konfigurasi sistem.

Konsep Dasar Docker

  • Container: lingkungan terisolasi untuk menjalankan aplikasi
  • Image: blueprint atau template untuk membuat container
  • Dockerfile: file konfigurasi untuk build image
  • Docker Hub: repository publik untuk menyimpan image
  • Volume: penyimpanan data persistent
  • Network: komunikasi antar container

Keuntungan Menggunakan Docker

  • Portability (bisa jalan di mana saja)
  • Isolasi aplikasi yang lebih baik
  • Setup environment lebih cepat
  • Ringan dibanding virtual machine
  • Mempermudah deployment dan scaling
  • Cocok untuk microservices architecture

Perbedaan Docker dan Virtual Machine

  • Docker lebih ringan (tanpa OS penuh)
  • VM membutuhkan resource lebih besar
  • Docker startup lebih cepat
  • VM lebih terisolasi secara penuh
  • Docker sharing kernel host OS

Contoh Dockerfile Sederhana


FROM golang:1.21-alpine

WORKDIR /app
COPY . .

RUN go build -o app

CMD ["./app"]

Perintah Dasar Docker


// Build image
docker build -t my-app .

// Run container
docker run -d -p 8080:8080 my-app

// Lihat container aktif
docker ps

// Stop container
docker stop <container_id>

Docker Compose

Docker Compose digunakan untuk menjalankan multi-container aplikasi dengan satu file konfigurasi (docker-compose.yml). Sangat berguna untuk aplikasi yang membutuhkan database, backend, dan service lainnya.


version: '3'
services:
  app:
    build: .
    ports:
      - "8080:8080"
  db:
    image: postgres
    environment:
      POSTGRES_PASSWORD: example

Use Case Docker

  • Deployment aplikasi web
  • Microservices architecture
  • CI/CD pipeline
  • Development environment isolation
  • Testing environment
  • Cloud-native application

Best Practice

  • Gunakan image ringan seperti alpine
  • Gunakan .dockerignore untuk file yang tidak perlu
  • Pisahkan service dengan docker-compose
  • Gunakan environment variable untuk konfigurasi
  • Jangan jalankan container sebagai root
  • Gunakan volume untuk data penting

Kesalahan Umum

  • Image terlalu besar
  • Tidak menggunakan cache build
  • Hardcode konfigurasi di Dockerfile
  • Tidak mengelola volume dengan baik
  • Mengabaikan security container

Kesimpulan

Docker adalah solusi modern untuk menjalankan aplikasi secara konsisten dan efisien. Dengan memahami konsep container, image, dan workflow Docker, developer dapat mempercepat development, deployment, dan scaling aplikasi dengan lebih mudah.