Junior — Middle
Mi a különbség a CMD és a RUN parancsok között egy Dockerfile-ban, és mire szolgálnak mindegyik?
sobes.tech MI
Válasz az MI-től
В Dockerfile:
-
CMD задаёт команду по умолчанию, которая будет выполнена при запуске контейнера. Она может быть переопределена при запуске контейнера через
docker run. -
RUN выполняет команду во время сборки образа. Используется для установки пакетов, настройки окружения и т.п. Каждая команда RUN создаёт новый слой в образе.
Пример:
FROM ubuntu:20.04
RUN apt-get update && apt-get install -y curl # выполняется при сборке
CMD ["/bin/bash"] # команда по умолчанию при запуске контейнера
Таким образом, RUN — для подготовки образа, CMD — для задания поведения контейнера при запуске.