🚒 Mengenal Docker: Panduan Lengkap dari Nol

Halo sobat DevOps, Dev dan SysAdmin! πŸ‘©β€πŸ’»
Di artikel ini, kita bakal bahas tuntas apa itu Docker, kenapa harus pakai Docker, dan gimana cara mulai pake Docker.


πŸ“¦ Apa Itu Docker?

Docker adalah platform open-source yang memungkinkan kita untuk membungkus aplikasi dan semua dependensinya ke dalam sebuah container.
Container itu ibarat β€œmini-VM” yang super ringan, cepat, dan konsisten dijalankan di berbagai environment.

πŸ”₯ β€œBuild once, run anywhere!” πŸ”₯


⚑ Kenapa Harus Pakai Docker?

Beberapa alasan kenapa Docker itu wajib dicoba:

  • βœ… Portabilitas: Aplikasi bisa jalan di laptop, server, atau cloud dengan setup yang sama.
  • βœ… Isolasi: Tiap container berjalan terpisah. No more konflik dependency antar aplikasi.
  • βœ… Efisiensi: Lebih ringan dan cepat dibanding VM.
  • βœ… CI/CD Ready: Sangat cocok untuk deployment otomatis dan DevOps workflow.

βš”οΈ Perbandingan Docker vs Alternatifnya

Teknologi Kelebihan Utama Kekurangan Cocok Untuk
Docker Ekosistem luas, dokumentasi lengkap, dukungan komunitas besar Butuh daemon (dockerd), kadang berat di resource Developer, CI/CD, project individual
Podman Tidak butuh daemon, rootless (lebih secure), CLI mirip Docker Kurang banyak image dibanding Docker Hub Server production, secure containers
containerd Lightweight, runtime resmi Kubernetes Kurang friendly untuk dev langsung Kubernetes runtime, integrasi CRI
CRI-O Native Kubernetes container runtime Fungsionalitas terbatas, hanya untuk Kubernetes Cluster Kubernetes, enterprise
LXC / LXD Mirip VM, bisa jalankan full OS Konfigurasi lebih kompleks Virtualisasi ringan, testing OS
RKT (deprecated) Security by design, systemd integration Sudah tidak dikembangkan Sistem lama berbasis CoreOS

πŸ”₯ Note: Docker sekarang tidak menjadi runtime default di Kubernetes, digantikan oleh containerd/CRI-O sejak Kubernetes 1.20+


🧱 Arsitektur Docker: Gambaran Besar yang Perlu Lo Pahami

Docker Architecture

Docker memiliki 3 komponen utama yang bekerja sama membentuk ekosistem containerisasi modern:


πŸ§‘β€πŸ’» 1. Client

πŸ”Ή Tempat lo menjalankan perintah Docker seperti:

  • docker build
  • docker pull
  • docker run
  • docker push

πŸ”Ή Client bisa berupa:

  • CLI (Command Line Interface)
  • Remote API

πŸ–₯️ 2. Docker Host (Docker Daemon)

πŸ’₯ Di sinilah β€œmesin” utama Docker berada:

  • Docker Daemon (dockerd) menerima perintah dari client.
  • Melakukan build image dari Dockerfile.
  • Menjalankan container dari image.
  • Berkomunikasi dengan registry untuk pull/push image.
  • Menyimpan container & image secara lokal.

πŸ“¦ 3. Registry

πŸ” Tempat untuk menyimpan dan mengambil image Docker.

  • Public registry: Docker Hub, GitHub Container Registry.
  • Private registry: Bisa dibangun sendiri di perusahaan.

πŸ”„ Alur Proses:

1
2
3
4
docker build  -> Dockerfile diubah jadi image (⬅️ Build)
docker push -> Image dikirim ke Registry (⬆️ Push)
docker pull -> Ambil image dari Registry (⬇️ Pull)
docker run -> Jalankan container dari image (▢️ Run)

🧊 Kesimpulan:

Docker mempermudah proses pengembangan, testing, dan deployment aplikasi dengan container yang ringan dan konsisten.


πŸ”§ Install Docker (Linux / Windows / Mac)

πŸ’» Ubuntu / Debian

1
2
3
sudo apt update
sudo apt install docker.io -y
sudo systemctl enable --now docker

πŸͺŸ Windows / 🍎 Mac

Download langsung dari sini: https://www.docker.com/products/docker-desktop

Jangan lupa aktifin WSL2 (untuk Windows) biar lancar guys!


πŸš€ Perintah Docker Dasar

Perintah Fungsi
docker version Cek versi Docker
docker ps Lihat container yang sedang jalan
docker images Daftar image yang dimiliki
docker pull nginx Download image dari Docker Hub
docker run -d -p 8080:80 nginx Jalankan container nginx di port 8080
docker stop <id> Hentikan container
docker rm <id> Hapus container
docker rmi <image> Hapus image

πŸ“ Dockerfile: Resep Bikin Image Sendiri

Contoh Dockerfile sederhana:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Gunakan image dasar
FROM python:3.11-slim

# Set working directory
WORKDIR /app

# Copy semua file ke dalam container
COPY . .

# Install dependency
RUN pip install -r requirements.txt

# Jalankan aplikasi
CMD ["python", "app.py"]

Build image:

1
docker build -t myapp:latest .

πŸ”₯ Docker Compose: Multi-Container Made Easy

Contoh docker-compose.yml:

1
2
3
4
5
6
7
8
version: "3"
services:
web:
image: nginx
ports:
- "8080:80"
redis:
image: redis

Jalankan dengan:

1
docker-compose up -d

🌐 Docker Hub dan Private Registry

1
2
docker tag myapp yourname/myapp
docker push yourname/myapp

πŸ“Š Monitoring dan Tips Pro

  • Gunakan docker stats buat cek penggunaan resource.
  • Gunakan tools kayak Portainer, Watchtower, dan Grafana + Prometheus buat monitoring lebih advanced.
  • Jangan lupa tambahkan .dockerignore agar build lebih cepat dan ringan.

🧠 Tips Profesional

  • Selalu gunakan tag image versi (myapp:1.0.1) daripada latest.
  • Audit image dengan tools seperti trivy atau docker scan.
  • Simpan file konfigurasi environment di .env dan jangan upload ke repo publik.

πŸ”š Penutup

Docker itu bagaikan senjata rahasia di dunia modern DevOps dan cloud.
Belajar sekali, manfaatnya bisa dipakai seumur hidup karier lo! πŸ”₯

Kalau ada pertanyaan, tulis di kolom komentar blog ini ya all! πŸ™Œ
Jangan lupa follow blog ini buat update konten keren lainnya, terima kasih.


Source: Medium
πŸ›  Ditulis oleh: znand-dev
πŸ“… Update terakhir: 2025-06-16