Sobes.tech
Back to questions
Middle
6

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

Companies where asked
Ртк-софт

Answer from AI

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 задаёт аргументы по умолчанию.