Назад к вопросам
Andersen
Альфа-Банк
Junior — Middle
71
Как отличить инструкции CMD и ENTRYPOINT в файле Dockerfile и в чем их основные предназначения?
Компании, где спрашивали
Solar
Ответ от нейросети
sobes.tech AI
CMD и ENTRYPOINT — это инструкции в Dockerfile, которые задают команду, выполняемую при запуске контейнера, но имеют разные цели и поведение.
- ENTRYPOINT задаёт основную команду контейнера, которая всегда будет выполняться. Она определяет, что именно контейнер делает по умолчанию, и обычно не меняется при запуске.
- CMD задаёт аргументы по умолчанию для ENTRYPOINT или, если ENTRYPOINT не указан, CMD становится командой по умолчанию.
Если при запуске контейнера передаются аргументы, то:
- При использовании ENTRYPOINT эти аргументы добавляются к команде ENTRYPOINT.
- При использовании только CMD аргументы заменяют CMD.
Пример:
ENTRYPOINT ["echo"]
CMD ["Hello, world!"]
Запуск docker run image выведет "Hello, world!", а docker run image Goodbye — "Goodbye".
Таким образом, ENTRYPOINT фиксирует основную команду, а CMD задаёт её параметры по умолчанию.