Panduan Docker Lengkap: Dari Pemula Hingga Mahir
Pelajari Docker secara komprehensif, mulai dari dasar hingga tingkat mahir. Pelajari cara menggunakan Docker untuk pengembangan dan deployment aplikasi.
1. Pengantar Container
Apa Itu Container?
Container adalah unit ringan dan portabel yang digunakan untuk menjalankan aplikasi secara konsisten di berbagai lingkungan. Container mengemas aplikasi beserta semua dependensinya ke dalam satu paket terisolasi.
Perbedaan Container dan Virtual Machine (VM)
- VM: Menjalankan sistem operasi lengkap di atas hypervisor.
- Container: Berbagi kernel OS host dan berjalan lebih ringan serta cepat.
- VM cocok untuk menjalankan berbagai OS dalam satu mesin.
- Container ideal untuk deployment cepat dan efisien dengan overhead yang minim.
2. Pengantar Docker
Apa Itu Docker?
Docker adalah platform open-source yang memungkinkan developer untuk membangun, mengirim, dan menjalankan aplikasi di dalam container. Docker menjadi container manager paling populer karena kemudahan penggunaannya.
Mengapa Docker Populer?
- Proses deployment cepat dan konsisten.
- Skalabilitas tinggi.
- Dukungan komunitas dan ekosistem yang luas.
3. Instalasi Docker
Docker Desktop (untuk Mac/Windows)
- Unduh dari docker.com.
- Ikuti wizard instalasi.
- Verifikasi dengan perintah:
docker --version
.
Instalasi di Linux
bashCopyEditsudo apt update
sudo apt install docker.io
sudo systemctl start dockersudo systemctl enable
docker
Cek instalasi: docker --version
.
4. Arsitektur Docker
Komponen Utama:
- Docker Engine: Mesin inti yang menjalankan container.
- Docker Daemon: Mengelola objek Docker.
- Docker CLI: Antarmuka baris perintah.
- Docker Image & Container: Blueprint dan instance aplikasi.
Cara Kerja Singkat:
Docker menjalankan container dari image. Image dibangun dari Dockerfile dan disimpan di Docker Registry.
5. Docker Registry
Apa Itu Docker Registry?
Tempat penyimpanan untuk Docker image.
Contoh Registry:
- Gratis: Docker Hub, GitHub Container Registry.
- Berbayar: AWS ECR, Google Container Registry (GCR), Azure Container Registry (ACR).
6. Manajemen Docker Image
Perintah Dasar:
docker pull <image>
– Mengunduh image.docker images
– Menampilkan daftar image.docker rmi <image>
– Menghapus image.
Tips:
- Gunakan tag versi (
nginx:1.21
) untuk kontrol yang lebih baik.
7. Manajemen Docker Container
Perintah Penting:
docker run
– Menjalankan container.docker ps
– Melihat container aktif.docker stop
/start
/rm
– Mengelola siklus hidup container.
Contoh:
docker run -d -p 8080:80 nginx
8. Fitur Docker Container
Fitur Penting:
- Logs:
docker logs <container>
- Exec:
docker exec -it <container> bash
- Port: Mapping port host-container (
-p 8080:80
) - Environment Variable:
-e VAR_NAME=value
- Statistics:
docker stats
- Resource Limit:
--memory
,--cpus
9. Bind Mounts dan Docker Volume
Bind Mount
Menghubungkan direktori lokal ke container:
docker run -v $(pwd
):/app myimage
Docker Volume
Cara yang lebih aman dan terkelola:
docker volume create data_volume
docker run -v data_volume:/data myimage
10. Backup dan Restore Data
Backup Volume:
docker run --rm -v data_volume:/data -v $(pwd
):/backup busybox tar czf /backup/backup.tar.gz /data
Restore Volume:
docker run --rm -v data_volume:/data -v $(pwd
):/backup busybox tar xzf /backup/backup.tar.gz -C /
11. Docker Network
Manajemen Jaringan:
- Bridge: Default network.
- Host: Container berbagi IP host.
- None: Tanpa jaringan.
Perintah:
docker network ls
docker network create my_network
docker run --network=my_network
Siapa Saja yang Cocok Belajar?
- Programmer Pemula
- DevOps Pemula
Manfaat Mempelajari Docker:
- Efisiensi: Memudahkan deployment aplikasi.
- Konsistensi: Memastikan lingkungan yang konsisten di berbagai platform.
- Skalabilitas: Mempermudah penskalaan aplikasi.
- Popularitas: Meningkatkan nilai Anda di pasar kerja.