Sobes.tech
Назад к вопросам
Junior — Middle
71

Как различаются инструкции RUN, CMD и ENTRYPOINT в Dockerfile?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

  • RUN выполняет команду во время сборки образа Docker. Результат команды сохраняется в слое образа. Используется для установки пакетов, настройки окружения и т.п.

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

  • ENTRYPOINT задаёт основную команду, которая всегда будет выполнена при запуске контейнера. Аргументы, переданные при запуске, добавляются к ENTRYPOINT.

Пример:

FROM ubuntu
RUN apt-get update && apt-get install -y curl
ENTRYPOINT ["curl"]
CMD ["--help"]

При запуске контейнера без аргументов выполнится curl --help. Если запустить с аргументами, например docker run <image> http://example.com, выполнится curl http://example.com.