Отличие между ARG и ENV при настройке переменных окружения в Docker заключается в том, что переменные ARG доступны только во время процесса сборки, а переменные ENV — во время выполнения. 14
ARG позволяет передавать аргументы во время сборки образа с помощью флага --build-arg в команде docker build. 3 Эти аргументы действуют как заполнители и доступны только во время процесса сборки. 3
ENV устанавливает переменные окружения, которые будут persist при запуске контейнера. 3 Их можно указать прямо в Dockerfile или через параметры командной строки с помощью -e при запуске контейнера. 3
Таким образом, если нужно настроить процесс сборки и создавать уникальные образы для разных случаев использования, то лучше использовать переменные ARG. 1 Если же нужно настроить среду приложения и использовать один и тот же образ с разными конфигурациями, то подойдут переменные ENV. 1