DEV Community

Cover image for Perbedaan perintah RUN dan CMD di dalam Docker
pelurunyasar
pelurunyasar

Posted on

Perbedaan perintah RUN dan CMD di dalam Docker

Dua perintah penting dalam Docker yang kadang bikin bingung: RUN dan CMD. Saya akan menjelaskan apa artinya dan kapan kita pakai yang mana.

1. RUN:
Ini kayak perintah yang dilakukan saat kita sedang bikin Docker image. Jadi, bayangin lagi kita lagi masak resep itu. Nah, dalam langkah-langkah bikin, kita bisa kasih perintah RUN buat melakukan hal-hal seperti nyiapin bahan-bahan dan semacamnya. Biasanya, ini digunakan buat menginstal hal-hal yang diperlukan sama aplikasi kita.

Misalnya, kita bisa bilang begini di "resep" Docker kita:

RUN apt-get update && apt-get install -y curl
Enter fullscreen mode Exit fullscreen mode

Nah, pas kita lagi "masak", perintah ini bakal dijalankan buat ngasih tahu Docker "Hei, pasangin 'curl' dong!".

2. CMD:
Ini lebih kayak perintah "default" buat menjalankan aplikasi kita dalam container. Ini kayak aturan mainnya. Saat kita menjalankan kontainer, perintah dalam CMD bakal otomatis berjalan. Jadi, ini semacam kasih tahu Docker, "Hei, kalau kontainer ini dihidupin, jalankan ini ya!"

Contoh yang simple:

CMD ["npm", "start"]
Enter fullscreen mode Exit fullscreen mode

Nah, kalau kita menjalankan kontainer ini, otomatis aplikasinya bakal jalan dengan perintah npm start.

Tapi, ada juga cara lain buat tulis perintah CMD. Kita bisa juga pakai yang bentuk "shell":

CMD npm start
Enter fullscreen mode Exit fullscreen mode

Artinya sama aja, cuma ini kayak lagi ngomong ke shell "Hei, jalanin npm start ya!". Yang ini sering dipakai kalau kita mau pake sintaks shell, misalnya pakai titik koma atau variabel lingkungan.

Singkatnya:

  • RUN dipakai buat jalanin perintah pas lagi bikin Docker image.
  • CMD dipakai buat tentuin perintah bawaan pas kita menjalankan kontainer.
  • Perintah di RUN dieksekusi waktu membuat Docker image, kayak masak-masak. Perintah di CMD dieksekusi waktu kontainer hidup.
  • RUN bantu buat bikin, sedangkan CMD terkait sama cara aplikasi jalan di dalam kontainer.

Nah, kira-kira begitulah. Jadi, RUN itu kayak masak, sedangkan CMD itu kayak peraturan main aplikasi di kontainer.

Top comments (0)