</>
⌕
Junior #dockerfile#cmd#entrypoint

CMD và ENTRYPOINT khác nhau thế nào?

⚡ Trả lời nhanh

ENTRYPOINT định nghĩa chương trình chính luôn chạy của container; CMD cung cấp tham số mặc định, dễ bị ghi đè bằng đối số của docker run. Dùng chung: ENTRYPOINT là lệnh cố định, CMD là đối số mặc định. Nên dùng dạng exec (mảng JSON).

ENTRYPOINT ["python", "app.py"]
CMD ["--port", "8000"]
docker run img                  # python app.py --port 8000
docker run img --port 9000      # python app.py --port 9000 (ghi đè CMD)
docker run --entrypoint sh img  # ghi đè ENTRYPOINT
Shell formExec form
Cú phápCMD python app.pyCMD ["python","app.py"]
PID 1/bin/sh -cchính tiến trình app
Nhận SIGTERMkhông (shell không chuyển tiếp)có
🃏 Ôn bằng flashcard