🟡 Средний · 2 очк. Docker
Чем ENTRYPOINT отличается от CMD в Dockerfile?
A Ничем
B ENTRYPOINT задаёт команду, CMD - аргументы по умолчанию
C CMD выполняется первым
D ENTRYPOINT только для скриптов
Объяснение вопроса

ENTRYPOINT задаёт основную команду контейнера (часто неизменяемую). CMD задаёт аргументы по умолчанию к этой команде; их можно переопределить при docker run.

Поведение при docker run

# Dockerfile:
ENTRYPOINT ["./app"]
CMD ["--port", "80"]

# Запуск:
docker run myimage
# Выполнится: ./app --port 80

docker run myimage --port 3000
# Выполнится: ./app --port 3000  (CMD полностью заменён)

Когда что использовать

  • ENTRYPOINT - когда образ всегда должен запускать одну программу (например, свой бинарник)
  • CMD - когда нужны разумные аргументы по умолчанию, которые пользователь может заменить

Форма с JSON-массивом (["cmd", "arg1"]) предпочтительна: аргументы не проходят через shell и не интерпретируются.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.