Docker tidak mengharuskan kita menghafal banyak command. Saat development lokal, sebagian besar aktivitas cukup dilakukan menggunakan beberapa perintah Docker Compose.

Artikel ini merangkum command yang paling sering saya pakai untuk menjalankan project, memeriksa container, membaca log, dan melakukan troubleshooting sederhana.

Menjalankan Project

Gunakan command berikut untuk menjalankan seluruh service yang didefinisikan dalam compose.yaml:

docker compose up -d

Opsi -d berarti detached mode, sehingga container tetap berjalan di background dan terminal bisa digunakan kembali.

Jika ingin melihat proses dan log langsung di terminal, jalankan tanpa -d:

docker compose up

Build Ulang Image

Jika ada perubahan pada Dockerfile, dependency, atau konfigurasi build, gunakan:

docker compose up -d --build

Command ini membangun ulang image terlebih dahulu, kemudian menjalankan container.

Untuk melakukan build tanpa menjalankan container:

docker compose build

Jika cache build menyebabkan perubahan terbaru tidak terbaca, image dapat dibangun ulang tanpa cache:

docker compose build --no-cache

Gunakan --no-cache seperlunya karena proses build akan lebih lama.

Mengecek Status Container

Untuk melihat status service dalam project:

docker compose ps

Informasi yang ditampilkan biasanya mencakup:

  • Nama container
  • Status container
  • Port yang digunakan
  • Health status jika health check tersedia

Untuk melihat seluruh container Docker yang sedang berjalan:

docker ps

Tambahkan opsi -a jika ingin melihat container yang sudah berhenti:

docker ps -a

Membaca Log

Untuk menampilkan log seluruh service:

docker compose logs

Gunakan opsi -f untuk mengikuti log secara real-time:

docker compose logs -f

Jika hanya ingin memantau satu service, tambahkan nama service-nya:

docker compose logs -f app

Ganti app dengan nama service yang terdapat di dalam compose.yaml, misalnya backend, web, nginx, atau database.

Tekan Ctrl+C untuk berhenti mengikuti log. Container tetap berjalan di background.

Menjalankan Command di Dalam Container

Untuk membuka shell di dalam container aplikasi:

docker compose exec app sh

Jika image menyediakan Bash, gunakan:

docker compose exec app bash

Command lain juga dapat dijalankan langsung tanpa membuka shell:

docker compose exec app <command>

Contoh pada project Laravel:

docker compose exec app php artisan migrate
docker compose exec app php artisan test
docker compose exec app composer install

Melakukan Restart

Untuk menjalankan ulang seluruh service:

docker compose restart

Jika hanya satu service yang perlu di-restart:

docker compose restart app

Restart berguna ketika aplikasi atau service bermasalah, tetapi tidak membangun ulang image.

Jika perubahan berada di Dockerfile, gunakan kembali:

docker compose up -d --build

Menghentikan Container

Untuk menghentikan container tanpa menghapusnya:

docker compose stop

Container yang dihentikan dapat dijalankan kembali dengan:

docker compose start

Jika ingin menghentikan sekaligus menghapus container dan network yang dibuat oleh Compose:

docker compose down

Secara default, docker compose down tidak menghapus named volume.

Perbedaan Stop dan Down

docker compose stop
  • Menghentikan container
  • Container tetap tersedia
  • Dapat dijalankan kembali dengan docker compose start
docker compose down
  • Menghentikan container
  • Menghapus container dan network Compose
  • Container akan dibuat kembali saat menjalankan docker compose up

Command yang Perlu Diwaspadai

docker compose down -v

Opsi -v ikut menghapus volume yang dikelola oleh Compose. Jika database disimpan di volume tersebut, data lokal dapat ikut terhapus.

Pastikan data sudah tidak diperlukan atau telah dicadangkan sebelum menjalankannya.

Ringkasan Command

Command Fungsi
docker compose up -d Menjalankan project di background
docker compose up -d --build Build ulang image lalu menjalankan project
docker compose ps Mengecek status service
docker compose logs -f Memantau log secara real-time
docker compose exec app sh Masuk ke shell container aplikasi
docker compose restart app Menjalankan ulang service aplikasi
docker compose stop Menghentikan container tanpa menghapusnya
docker compose start Menjalankan kembali container yang dihentikan
docker compose down Menghentikan dan menghapus container project

Nama service seperti app dapat berbeda pada setiap project. Periksa bagian services di dalam compose.yaml untuk mengetahui nama yang digunakan.