Skip to main content

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

  1. Download Docker Desktop dari website resmi
  2. Install seperti aplikasi biasa
  3. Aktifkan WSL2 dan install Linux Kernel
  4. Restart komputer
  5. Jalankan Docker Desktop

Cek versi

docker --version

Instalasi di macOS

Docker Desktop

  1. Download Docker Desktop for Mac (Intel atau Apple Silicon)
  2. Drag & drop ke Applications
  3. 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 .dockerignore untuk menghindari file tidak penting masuk ke image
  • Build image sekecil mungkin menggunakan Alpine
  • Gunakan tag versi image, jangan latest
  • Monitoring container menggunakan docker stats