Для чего используется CMD и ENTRYPOINT в Docker?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
CMD и ENTRYPOINT определяют, какую команду будет выполнять запускающийся контейнер.
-
CMD (Command): Определяет команду по умолчанию, которая будет выполнена при запуске контейнера, если не указана команда при вызове
docker rum. Может содержать только исполняемый файл или исполняемый файл с аргументами. Переопределяется аргументами командыdocker rum.# CMD в форме exec CMD ["nginx", "-g", "daemon off;"] # CMD в форме shell (не рекомендуется для продакшена из-за проблем с сигналами) # CMD nginx -g "daemon off;" -
ENTRYPOINT (Entrypoint): Определяет команду, которая всегда будет выполняться при запуске контейнера. Аргументы, указанные при вызове
docker run, будут переданы этой команде в качестве параметров. Часто используется в сочетании с CMD для определения части команды (ENTRYPOINT) и ее аргументов по умолчанию (CMD).# ENTRYPOINT в форме exec ENTRYPOINT ["/usr/local/bin/my-script.sh"]
Сравнение CMD и ENTRYPOINT:
| Характеристика | CMD | ENTRYPOINT |
|---|---|---|
| Назначение | Команда по умолчанию | Основная команда, которая всегда выполняется |
Возможность переопределения через docker run |
Да (аргументом) | Нет (только через флаг --entrypoint) |
Использование с аргументами docker run |
Аргументы docker run заменяют CMD |
Аргументы docker run добавляются к ENTRYPOINT |
| Рекомендованное использование | Задание аргументов исполняемого файла | Задание исполняемого файла, который запускается |