Docker adalah aplikasi yang memudahkan proses pengelolaan proses aplikasi dalam containers. Containers memungkinkan Anda menjalankan aplikasi dalam proses dan sumber daya yang terisolasi. Mereka mirip dengan mesin virtual, tetapi kontainer lebih portabel, lebih ramah sumber daya, dan lebih bergantung pada sistem operasi host.
Instalasi Docker
On Debian/Ubuntu systems:
curl -fsSL https://get.docker.com | sh
sudo systemctl enable --now docker
On RHEL-based systems (e.g. Rocky Linux 9):
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-ce-rootless-extras docker-buildx-plugin
sudo systemctl enable --now docker
Menambahkan Pengguna ke Grup Docker
sudo groupadd docker 2>/dev/null || true
sudo usermod -aG docker $USER
Cek apakah user sudah masuk ke grup docker
groups
Contoh output:
web1 docker
Pastikan nama grup docker
muncul dalam daftar grup user Anda.
Test docker tanpa sudo
docker run hello-world
Jika berhasil, Anda akan melihat pesan:
“Hello from Docker!”
Jika muncul error permission, cek izin file socket Docker.
ls -l /var/run/docker.sock
Contoh output yang benar:
srw-rw---- 1 root docker 0 May 18 14:31 /var/run/docker.sock
Pastikan file tersebut dimiliki oleh user root
dan grup docker
, serta grup memiliki izin baca dan tulis (rw-
).
(Opsional) Mengatur Izin Socket Docker
⚠️ Tidak disarankan untuk lingkungan produksi karena alasan keamanan.
sudo chmod 666 /var/run/docker.sock
Perintah Dasar Docker
Search images
docker search nginx
Download image
docker pull nginx
📦 Show images
docker images
Running container
docker run -it ubuntu
Perintah ini akan menjalankan container Ubuntu dalam mode interaktif (
-it
).
List containers
docker ps -a
Gunakan opsi
-a
untuk melihat semua container, termasuk yang sudah berhenti.
Manage containers
docker start 0596bd489a2d
Inspect containers
docker inspect 0596bd489a2d
Menampilkan Informasi Tertentu dari Semua Container
docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
Docker Compose
Berikut adalah contoh file docker-compose.yml
dengan opsi pull_policy
:
services:
app_always:
image: nginx:latest
deploy:
update_config:
failure_action: rollback
rollback_config:
failure_action: continue
pull_policy: always
Pada contoh di atas, opsi pull_policy
menentukan bagaimana Docker menangani penarikan (pull) image dari registry. Nilai yang dapat digunakan antara lain:
always
: Selalu menarik (pull) image dari registry, meskipun sudah tersedia secara lokal.missing
: Menarik image hanya jika image tersebut tidak tersedia di sistem lokal.never
: Tidak akan menarik image dari registry; hanya menggunakan image yang sudah ada secara lokal.