Назад к вопросам
Junior — Middle
70
Чем отличаются команды CMD и ENTRYPOINT в Dockerfile и как их правильно использовать?
Ответ от нейросети
sobes.tech AI
В Dockerfile команды CMD и ENTRYPOINT задают команду, которая будет выполнена при запуске контейнера, но имеют разные цели и поведение.
- CMD задаёт команду по умолчанию, которую можно переопределить при запуске контейнера. Обычно используется для указания аргументов или команды, которую можно заменить.
- ENTRYPOINT задаёт основную команду, которая всегда будет выполняться, а аргументы, переданные при запуске контейнера, добавляются к ней.
Правильное использование:
- Если нужно, чтобы контейнер всегда запускал определённую программу, а параметры можно было менять — используйте ENTRYPOINT для программы и CMD для параметров.
- Если хотите просто задать команду по умолчанию, которую можно заменить — используйте CMD.
Пример:
ENTRYPOINT ["python3"]
CMD ["app.py"]
При запуске docker run image выполнится python3 app.py, а при docker run image script.py — python3 script.py.