Чем отличаются RUN, CMD и ENTRYPOINT в Dockerfile?

RUN выполняет команду при сборке образа; CMD задаёт команду или аргументы по умолчанию для запуска; ENTRYPOINT определяет основную программу контейнера.

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

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

RUN выполняет команду при сборке образа; CMD задаёт команду или аргументы по умолчанию для запуска; ENTRYPOINT определяет основную программу контейнера.

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

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

RUN выполняет команду при сборке образа; CMD задаёт команду или аргументы по умолчанию для запуска; ENTRYPOINT определяет основную программу контейнера.

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

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

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

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

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

Подробнее