RUN выполняет команду при сборке образа; CMD задаёт команду или аргументы по умолчанию для запуска; ENTRYPOINT определяет основную программу контейнера.
Чем отличаются RUN, CMD и ENTRYPOINT в Dockerfile?
RUN выполняет команду при сборке образа; CMD задаёт команду или аргументы по умолчанию для запуска; ENTRYPOINT определяет основную программу контейнера.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
RUN выполняет команду при сборке образа; CMD задаёт команду или аргументы по умолчанию для запуска; ENTRYPOINT определяет основную программу контейнера.
В exec-форме ENTRYPOINT аргументы CMD добавляются к программе, а аргументы docker run после имени образа заменяют CMD. ENTRYPOINT можно переопределить отдельной опцией. Пример: ENTRYPOINT ["node"] и CMD ["app.js"]. Shell-форма имеет другие правила передачи аргументов и сигналов, поэтому эти формы нельзя считать взаимозаменяемыми.
Источник: docs.docker.com.