Sobes.tech
Junior — Middle
99

Dockerfile'da CMD ve ENTRYPOINT komutları arasındaki fark nedir ve bunlar nasıl doğru kullanılır?

AI'dan gelen yanıt

sobes.tech yapay zeka

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

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

Правильное использование:

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

Пример:

ENTRYPOINT ["python3"]
CMD ["app.py"]

При запуске docker run image выполнится python3 app.py, а при docker run image script.pypython3 script.py.