ENTRYPOINT задаёт основную исполняемую команду, CMD — команду по умолчанию либо её аргументы. В exec-форме аргументы после image заменяют CMD, а ENTRYPOINT меняют через --entrypoint.
В чём разница между CMD и ENTRYPOINT в Dockerfile? Что из них можно переопределить при запуске контейнера?
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.