Что такое entrypoint и cmd в контекстеDocker?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
ENTRYPOINT определяет команду, которая будет выполнена при запуске контейнера. Если CMD или параметры команды переданы при запуске docker run, они добавляются как аргументы к этой команде.
CMD предоставляет аргументы по умолчанию для ENTRYPOINT или выполняется как отдельная команда, если ENTRYPOINT не определен. Если при запуске контейнера переданы параметры, они переопределяют значение CMD.
Различия:
| Особенность | ENTRYPOINT | CMD |
|---|---|---|
| Назначение | Определяет основную команду для выполнения | Предоставляет аргументы или команду по умолчанию |
| Переопределение | Требует docker run --entrypoint |
Переопределяется аргументами docker run |
Использование с ENTRYPOINT |
Аргументы для ENTRYPOINT |
Команда по умолчанию, если ENTRYPOINT нет |
Примеры:
С использованием ENTRYPOINT и CMD:
# Dockerfile
FROM alpine:latest
ENTRYPOINT ["echo", "Hello"]
CMD ["World!"]
При запуске docker run ваше-имя-образа: Выполнится echo Hello World!
При запуске docker run ваше-имя-образа Universe!: Выполнится echo Hello Universe!
Только с использованием CMD:
# Dockerfile
FROM alpine:latest
CMD ["echo", "Hello World!"]
При запуске docker run ваше-имя-образа: Выполнится echo Hello World!
При запуске docker run ваше-имя-образа echo Hello Docker!: Переопределит CMD, выполнится echo Hello Docker!
Рекомендуется использовать ENTRYPOINT для исполняемого файла и CMD для передачи параметров по умолчанию этому исполняемому файлу.