Intern
18
Чем отличается CMD от ENTRYPOINT в Docker?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Docker CMD и ENTRYPOINT задают команды, которые будут выполняться при запуске контейнера, но имеют разные цели и поведение:
ENTRYPOINTзадаёт основную команду контейнера, которая всегда будет выполняться. Она определяет, что именно контейнер делает.CMDзадаёт аргументы по умолчанию дляENTRYPOINTили команду, еслиENTRYPOINTне задан.
Если в Dockerfile есть только CMD, то при запуске контейнера можно переопределить команду, указав другую в docker run. Если задан ENTRYPOINT, то команда из docker run будет передана как аргументы к ENTRYPOINT.
Пример:
ENTRYPOINT ["echo"]
CMD ["Hello, world!"]
Запуск docker run без аргументов выведет Hello, world!, а docker run <image> Bye выведет Bye.
Таким образом, ENTRYPOINT фиксирует основную команду, а CMD задаёт её параметры по умолчанию.