Встречается на собеседованиях • сегодня

В чём разница между CMD и ENTRYPOINT в Dockerfile

Разница между CMD и ENTRYPOINT в Dockerfile заключается в их назначении и поведении при запуске контейнера:

  • ENTRYPOINT определяет команду, которая всегда будет выполняться при запуске контейнера. Её можно дополнить аргументами из CMD или переопределить с помощью docker run --entrypoint.
  • CMD предоставляет аргументы по умолчанию для ENTRYPOINT или команду, которая выполнится, если ENTRYPOINT не указан. Аргументы CMD можно переопределить при запуске контейнера.

Пример:

dockerfile
# ENTRYPOINT + CMD
ENTRYPOINT ["echo", "Hello"]
CMD ["World"]  # docker run → "Hello World"
               # docker run myimage Python → "Hello Python"

# Только CMD
CMD ["echo", "Hello World"]  # docker run → "Hello World"
                             # docker run myimage ls → выполнится `ls`

Если ENTRYPOINT не указан, CMD определяет команду для запуска. Если ENTRYPOINT есть, CMD становится его аргументами по умолчанию.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы