Gymterview
junior

Какие основные инструкции используются в Dockerfile?

Инструкции Dockerfile — это команды, определяющие содержимое и поведение Docker-образа.

Инструкция Описание
FROM Задаёт базовый образ. Каждый Dockerfile должен начинаться с FROM. Пример: FROM eclipse-temurin:17-jre-alpine
RUN Выполняет команду в процессе сборки образа и создаёт новый слой. Пример: RUN apt-get update && apt-get install -y curl
COPY Копирует файлы и директории из контекста сборки в файловую систему образа. Пример: COPY target/app.jar /app/app.jar
ADD Аналог COPY, но дополнительно поддерживает URL и автоматическую распаковку архивов (tar, gzip и т.д.)
CMD Определяет команду по умолчанию, которая выполнится при запуске контейнера. Может быть переопределена аргументами docker run
ENTRYPOINT Определяет исполняемый файл, который запустится при старте контейнера. В отличие от CMD, не так легко переопределяется
EXPOSE Документирует, какой порт слушает приложение внутри контейнера. Не публикует порт автоматически — для этого нужен -p при docker run
ENV Устанавливает переменную окружения, которая будет доступна и при сборке, и в работающем контейнере. Пример: ENV JAVA_OPTS="-Xmx512m"
ARG Определяет переменную, доступную только во время сборки. Пример: ARG JAR_FILE=target/*.jar
WORKDIR Устанавливает рабочую директорию для последующих инструкций RUN, CMD, ENTRYPOINT, COPY, ADD. Пример: WORKDIR /app
VOLUME Создаёт точку монтирования для тома. Данные в этой директории будут сохраняться вне контейнера. Пример: VOLUME /data
USER Задаёт пользователя, от имени которого выполняются последующие инструкции и запускается контейнер. Пример: USER appuser
LABEL Добавляет метаданные к образу. Пример: LABEL maintainer="dev@example.com"
HEALTHCHECK Определяет команду для проверки состояния контейнера

На собеседовании: не нужно перечислять все инструкции наизусть. Важно знать ключевые: FROM, RUN, COPY, CMD, ENTRYPOINT, EXPOSE, ENV, WORKDIR. Часто задают уточняющие вопросы про разницу CMD/ENTRYPOINT и COPY/ADD — это отдельные вопросы собеседования.