Docker
Docker adalah platform containerization yang memungkinkan developer untuk membuat, mengemas, dan menjalankan aplikasi dalam bentuk container. Container memastikan aplikasi berjalan konsisten di berbagai lingkungan, karena membawa semua dependency di dalamnya.
Keunggulan Docker
- Portabilitas Tinggi: Aplikasi dapat dijalankan di berbagai OS dan server.
- Ringan: Container lebih ringan dibandingkan virtual machine.
- Cepat: Build, deployment, dan scaling sangat cepat.
- Isolasi: Setiap aplikasi berjalan terisolasi dalam container.
Instalasi Docker
Instalasi di Linux (Ubuntu/Debian)
Uninstall versi lama (opsional)
sudo apt-get remove docker docker-engine docker.io containerd runc
Update repository
sudo apt-get update
Install dependency
sudo apt-get install ca-certificates curl gnupg
Tambah Docker GPG key
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 chmod a+r /etc/apt/keyrings/docker.gpg
Tambah repo Docker
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Install Docker Engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Cek Docker
docker --version
(Opsional) Jalankan tanpa sudo
sudo usermod -aG docker $USER
Instalasi di Windows
Menggunakan Docker Desktop
- Download Docker Desktop dari website resmi
- Install seperti aplikasi biasa
- Aktifkan WSL2 dan install Linux Kernel
- Restart komputer
- Jalankan Docker Desktop
Cek versi
docker --version
Instalasi di macOS
Docker Desktop
- Download Docker Desktop for Mac (Intel atau Apple Silicon)
- Drag & drop ke Applications
- Jalankan Docker Desktop
Cek versi
docker --version
Perintah Dasar Docker
Menjalankan container
docker run nama-image
Menjalankan container dengan port mapping
docker run -p 8080:80 nginx
Melihat container yang berjalan
docker ps
Stop container
docker stop <container_id>
Pull image
docker pull ubuntu
Melihat log
docker logs <container_id>
Remove container
docker rm <container_id>
Remove image
docker rmi <image_name>
Docker Compose
Docker Compose digunakan untuk menjalankan multi-container aplikasi.
Instalasi Docker Compose
Pada Windows & Mac sudah otomatis terinstall.
Di Linux:
sudo apt-get install docker-compose-plugin
Contoh file docker-compose.yml
version: '3'
services:
web:
image: nginx:latest
ports:
- "8080:80"
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: appdb
Jalankan Compose:
docker compose up -d
Stop Compose:
docker compose down
Tips dan Best Practice
- Gunakan
.dockerignoreuntuk menghindari file tidak penting masuk ke image - Build image sekecil mungkin menggunakan Alpine
- Gunakan tag versi image, jangan
latest - Monitoring container menggunakan
docker stats