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