Belajar Docker untuk pemula adalah proses memahami cara mengemas aplikasi beserta seluruh dependensinya ke dalam container — unit yang bisa dijalankan secara konsisten di mesin mana pun, tanpa konflik environment.
“Di komputerku jalan, di server tidak.” Kalau kamu pernah mengucapkan atau mendengar kalimat ini, Docker adalah jawaban untuk masalah itu.
Belajar Docker untuk pemula terasa intimidatif di awal — banyak istilah baru, command line, dan konsep yang kelihatannya abstrak. Tapi begitu satu konsep klik, sisanya mengikuti dengan logis. Docker bukan teknologi yang sulit; yang sulit adalah menemukan titik masuk yang tepat.
Yang perlu diluruskan sejak awal: Docker Desktop — aplikasi GUI untuk Windows dan Mac — kini berbayar untuk penggunaan komersial di perusahaan dengan 250+ karyawan atau revenue di atas $10 juta. Untuk personal, belajar, dan bisnis kecil, tetap gratis. Docker Engine di Linux tidak terpengaruh perubahan lisensi ini dan sepenuhnya gratis.
Sebelum masuk ke Docker, pastikan kamu sudah punya fondasi dasar lewat belajar coding dari nol — Docker akan jauh lebih masuk akal kalau kamu sudah familiar dengan konsep terminal dan cara aplikasi bekerja.
Belajar Docker untuk Pemula: Container vs Virtual Machine
Ini pertanyaan pertama yang hampir selalu muncul. Keduanya mengisolasi environment, tapi dengan cara yang sangat berbeda.
Virtual Machine (VM) menjalankan sistem operasi penuh di atas sistem operasi host. Setiap VM butuh ratusan MB hingga beberapa GB hanya untuk OS-nya — belum aplikasinya.
Container tidak membawa OS sendiri. Container berbagi kernel OS host, tapi mengisolasi proses, filesystem, dan network-nya. Hasilnya: container bisa jalan dalam hitungan detik, bukan menit, dan ukurannya jauh lebih kecil.
| Aspek | Virtual Machine | Docker Container |
|---|---|---|
| Waktu start | 30 detik – beberapa menit | < 1 detik |
| Ukuran | Ratusan MB – beberapa GB | Puluhan MB |
| Isolasi | Penuh (termasuk OS) | Proses & filesystem |
| Portabilitas | Terbatas | Tinggi |
| Resource usage | Berat | Ringan |
Untuk development dan deployment aplikasi modern, container menang di hampir semua aspek. VM masih relevan untuk use case yang butuh isolasi OS penuh — misalnya menjalankan Windows di atas Linux host.
Dengan kata lain, Docker memberi kamu isolasi yang cukup tanpa overhead yang tidak perlu.
Tiga Konsep Inti yang Harus Dipahami Sebelum Install
Banyak tutorial langsung loncat ke instalasi tanpa menjelaskan tiga konsep ini. Akibatnya pemula hafal command tapi tidak mengerti apa yang sedang terjadi.
Image: Blueprint Aplikasimu
Docker image adalah template read-only yang berisi instruksi untuk membuat container. Analoginya: image adalah resep, container adalah masakan yang dihasilkan dari resep itu.
Image dibangun dari file bernama Dockerfile — teks instruksi yang mendeskripsikan OS base, dependensi yang diinstall, dan perintah yang dijalankan saat container start.
Container: Instance yang Berjalan
Container adalah instance yang berjalan dari sebuah image. Dari satu image, kamu bisa jalankan puluhan container secara bersamaan — masing-masing terisolasi, masing-masing punya state sendiri.
Container bersifat ephemeral — ketika container dihentikan dan dihapus, semua perubahan di dalamnya hilang, kecuali kamu menggunakan volume untuk persistensi data.
Registry: Tempat Menyimpan dan Berbagi Image
Docker Hub adalah registry publik default — tempat ribuan image siap pakai tersedia: Nginx, PostgreSQL, Node.js, Python, Redis, semuanya ada di sana. Kamu bisa pull image yang sudah ada atau push image buatanmu sendiri.
Instalasi Docker: Pilih Sesuai OS
Linux (Ubuntu/Debian) — cara yang direkomendasikan:
bash
# Hapus versi lama jika ada
sudo apt remove docker docker-engine docker.io containerd runc
# Install via repository resmi
sudo apt update
sudo apt install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Jalankan Docker tanpa sudo
sudo usermod -aG docker $USER
newgrp docker
Windows dan Mac: Download Docker Desktop dari docker.com. Pastikan baca syarat lisensi jika digunakan untuk keperluan komersial perusahaan besar.
Verifikasi instalasi berhasil:
bash
docker --version
docker run hello-world
Kalau muncul pesan “Hello from Docker!”, instalasi sukses.
Deploy Aplikasi Pertama: Node.js di Docker
Ini latihan yang paling representatif untuk pemula — membungkus aplikasi web sederhana ke dalam container dan menjalankannya.
Langkah 1 — Buat aplikasi sederhana:
javascript
// app.js
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Halo dari Docker container!\n');
});
server.listen(3000, () => console.log('Server jalan di port 3000'));
Langkah 2 — Buat Dockerfile:
dockerfile
# Base image — Node.js versi LTS
FROM node:20-alpine
# Set working directory di dalam container
WORKDIR /app
# Copy file ke container
COPY app.js .
# Expose port yang digunakan aplikasi
EXPOSE 3000
# Perintah yang dijalankan saat container start
CMD ["node", "app.js"]
Langkah 3 — Build image:
bash
docker build -t aplikasi-pertama .
Flag -t memberi nama (tag) pada image. Titik di akhir berarti Dockerfile ada di direktori saat ini.
Langkah 4 — Jalankan container:
bash
docker run -p 3000:3000 aplikasi-pertama
Flag -p 3000:3000 memetakan port 3000 di container ke port 3000 di mesin hostmu. Buka browser, akses localhost:3000 — aplikasimu jalan di dalam container.
Command Docker yang Paling Sering Dipakai
bash
# Lihat container yang sedang berjalan
docker ps
# Lihat semua container (termasuk yang sudah berhenti)
docker ps -a
# Lihat semua image yang tersimpan
docker images
# Hentikan container
docker stop [container-id atau nama]
# Hapus container
docker rm [container-id atau nama]
# Hapus image
docker rmi [image-id atau nama]
# Masuk ke dalam container yang sedang berjalan
docker exec -it [container-id] bash
# Lihat log container
docker logs [container-id]
# Hapus semua container dan image yang tidak terpakai
docker system prune
Ayu, mahasiswi semester akhir jurusan Informatika, awalnya yakin Docker tidak relevan buat tugasnya — “itu kan buat yang sudah kerja.” Dia mulai belajar hanya karena dosen mewajibkan submit tugas dalam bentuk container. Tiga hari kemudian, dia justru yang paling cepat selesai di kelasnya, karena teman-temannya masih stuck di masalah “works on my machine” sementara container Ayu jalan identik di laptop dosen tanpa konfigurasi tambahan.
Tips Tambahan untuk Docker Pemula
Gunakan Alpine sebagai base image — node:20-alpine jauh lebih kecil dari node:20 biasa (sekitar 50MB vs 350MB). Untuk production, ukuran image yang kecil berarti pull lebih cepat dan attack surface lebih kecil.
Manfaatkan layer caching — Docker menyimpan cache per instruksi di Dockerfile. Copy package.json dan jalankan npm install sebelum copy kode aplikasi — sehingga dependensi tidak diinstall ulang setiap kali ada perubahan kode kecil.
Jangan simpan secret di image — API key, password database, dan konfigurasi sensitif tidak boleh di-hardcode di Dockerfile atau di-copy ke dalam image. Gunakan environment variable atau Docker secrets.
.dockerignore itu penting — Sama seperti .gitignore, file ini mencegah file yang tidak perlu (node_modules, .env, .git) masuk ke dalam image. Ini mempercepat build dan menjaga image tetap bersih.
Setelah memahami Docker secara mandiri, langkah berikutnya yang natural adalah mempelajari cara mengelola banyak container sekaligus — dan di situlah Docker Compose dan akhirnya Kubernetes masuk. Kalau kamu juga ingin tahu bagaimana Docker diintegrasikan ke dalam pipeline deployment otomatis, CI/CD pipeline dengan GitHub Actions adalah bacaan yang langsung relevan setelah ini.
FAQ
Apakah Docker bisa dijalankan di komputer dengan RAM 4GB? Bisa, tapi pengalaman terbaik ada di 8GB ke atas — terutama kalau kamu menjalankan beberapa container bersamaan. Untuk belajar dengan satu atau dua container sederhana, 4GB sudah cukup.
Apa perbedaan docker run dan docker start? docker run membuat container baru dari image dan langsung menjalankannya. docker start menjalankan container yang sudah ada tapi sedang berhenti. Untuk pertama kali selalu pakai docker run.



