Sobes.tech
Назад к вопросам
Middle
8

Чем отличается CMD от ENTRYPOINT?

Компании, где спрашивали
Ртк-софт

Ответ от нейросети

sobes.tech AI

В Dockerfile CMD и ENTRYPOINT задают команды для запуска контейнера, но имеют разные цели и поведение.

  • CMD — задаёт команду по умолчанию, которую можно переопределить при запуске контейнера. Обычно используется для указания аргументов или команды, если не переданы другие.

  • ENTRYPOINT — задаёт основную команду, которая всегда выполняется при запуске контейнера. Аргументы, переданные при запуске, добавляются к ENTRYPOINT.

Пример:

ENTRYPOINT ["/bin/echo"]
CMD ["Hello, World!"]

При запуске docker run image выполнится /bin/echo Hello, World!. Если запустить docker run image Goodbye, выполнится /bin/echo Goodbye.

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

Таким образом, ENTRYPOINT фиксирует команду, а CMD задаёт аргументы по умолчанию.