Чем в Dockerfile отличаются команды RUN и CMD?

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

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

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

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

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

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

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

RUN подходит для установки зависимостей и подготовки файлов. CMD может быть переопределён аргументами docker run и взаимодействует с ENTRYPOINT. Несколько RUN — отдельные шаги сборки, тогда как из нескольких CMD действует последнее. Для запуска процесса обычно предпочитают exec-форму с массивом аргументов, чтобы не добавлять лишний shell.

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

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

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

Подробнее