Чем отличаются команды CMD и RUN в Dockerfile и для чего каждая из них предназначена?

В Dockerfile:

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

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

В Dockerfile:

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

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

В Dockerfile:

  • CMD задаёт команду по умолчанию, которая будет выполнена при запуске контейнера. Она может быть переопределена при запуске контейнера через docker run.
  • RUN выполняет команду во время сборки образа. Используется для установки пакетов, настройки окружения и т.п. Каждая команда RUN создаёт новый слой в образе.

Пример:

FROM ubuntu:20.04
RUN apt-get update && apt-get install -y curl  # выполняется при сборке
CMD ["/bin/bash"]  # команда по умолчанию при запуске контейнера

Таким образом, RUN — для подготовки образа, CMD — для задания поведения контейнера при запуске.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку