Ответ
При совместном использовании ENTRYPOINT и CMD в Dockerfile, ENTRYPOINT определяет исполняемую команду, а CMD предоставляет для нее аргументы по умолчанию. При запуске контейнера аргументы, переданные в команде docker run, заменяют весь CMD, но не переопределяют ENTRYPOINT.
Пример Dockerfile:
FROM alpine:latest
ENTRYPOINT ["echo"]
CMD ["Hello from default CMD"]
Поведение:
docker run my-image→ выполнитсяecho "Hello from default CMD".docker run my-image Custom Argument→ выполнитсяecho "Custom Argument". Аргументы из командной строки полностью заменилиCMD.
Практическое применение: Эта комбинация позволяет создавать образы, которые ведут себя как исполняемые файлы (благодаря ENTRYPOINT), но с гибкостью настройки параметров запуска через CMD или аргументы командной строки.