Ответ
При одновременном использовании CMD и ENTRYPOINT в Dockerfile, CMD становится аргументами для команды, указанной в ENTRYPOINT. Если ENTRYPOINT задан как exec-форма (["executable", "param1"]), то CMD добавляет параметры. Если ENTRYPOINT не указан, CMD определяет команду для запуска.
Пример:
ENTRYPOINT ["echo", "Hello"]
CMD ["World"]
При запуске контейнера без аргументов выведет: Hello World. Если передать аргументы (docker run <image> John), выведет: Hello John (CMD игнорируется).