В чём разница между CMD и ENTRYPOINT в Dockerfile? Что из них можно переопределить при запуске контейнера?

ENTRYPOINT задаёт основную исполняемую команду, CMD — команду по умолчанию либо её аргументы. В exec-форме аргументы после image заменяют CMD, а ENTRYPOINT меняют через --entrypoint.

Короткий ответ

Что ответить на собеседовании

ENTRYPOINT задаёт основную исполняемую команду, CMD — команду по умолчанию либо её аргументы. В exec-форме аргументы после image заменяют CMD, а ENTRYPOINT меняют через --entrypoint.

Подробный разбор

Ответ с пояснениями

ENTRYPOINT задаёт основную исполняемую команду, CMD — команду по умолчанию либо её аргументы. В exec-форме аргументы после image заменяют CMD, а ENTRYPOINT меняют через --entrypoint.

Например, ENTRYPOINT ["python", "app.py"] и CMD ["--help"] запускают справку; docker run image --port 8000 заменит аргументы. Shell-форма имеет другую обработку команд и сигналов, поэтому правила exec-формы нельзя переносить на неё без оговорок.

Источник: docs.docker.com.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее