Mengenal Docker: Panduan Lengkap dari Nol
π’ 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 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 | docker build -> Dockerfile diubah jadi image (β¬ οΈ Build) |
π§ Kesimpulan:
Docker mempermudah proses pengembangan, testing, dan deployment aplikasi dengan container yang ringan dan konsisten.
π§ Install Docker (Linux / Windows / Mac)
π» Ubuntu / Debian
1 | sudo apt update |
πͺ 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 | # Gunakan image dasar |
Build image:
1 | docker build -t myapp:latest . |
π₯ Docker Compose: Multi-Container Made Easy
Contoh docker-compose.yml
:
1 | version: "3" |
Jalankan dengan:
1 | docker-compose up -d |
π Docker Hub dan Private Registry
- Docker Hub: https://hub.docker.com
- Push image:
1 | docker tag myapp 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
) daripadalatest
. - Audit image dengan tools seperti
trivy
ataudocker 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