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.