Dockerfile (Инструкции сборки образа)
Описание:
Dockerfile
— это сценарий сборки образа. Он содержит пошаговые инструкции, которые Docker выполняет, чтобы создать финальный образ. Каждая строка создает новый слой, поэтому важно соблюдать порядок и учитывать кэш.
Без инструкций не работает
Минимальный пример Dockerfile:
Образ будет собран из
alpine
и при запуске выведет строку.
Инструкция FROM
– базовый образ
Синтаксис:
Описание:
Устанавливает базовый образ, на котором будет строиться всё остальное. Это всегда первая строка.
Пример:
Инструкция COPY
– копирование файлов
Синтаксис:
Описание:
Копирует файлы или директории из контекста сборки в контейнер.
Пример:
Инструкция ADD
– расширенное копирование
Синтаксис:
Описание:
Похож на COPY
, но поддерживает:
- автоматическую распаковку архивов
- загрузку по URL (не рекомендуется)
Пример:
Инструкция RUN
– выполнение команды
Синтаксис:
Описание:
Выполняет команду на этапе сборки образа. Результат сохраняется в слое.
Пример:
Инструкция CMD
– команда по умолчанию
Синтаксис:
Описание:
Определяет команду, выполняемую при запуске контейнера. Можно переопределить через docker run
.
Пример:
Инструкция ENTRYPOINT
– основной процесс
Синтаксис:
Описание:
Похоже на CMD
, но не переопределяется так легко. Используется, если контейнер всегда должен запускать что-то одно.
Пример:
Инструкция WORKDIR
– рабочая директория
Синтаксис:
Описание:
Задаёт рабочую директорию для всех следующих инструкций RUN
, CMD
, COPY
и т.д.
Пример:
Инструкция ENV
– переменные окружения
Синтаксис:
Описание:
Задаёт переменные окружения во время сборки и для запуска контейнера.
Пример:
Инструкция ARG
– аргументы сборки
Синтаксис:
Описание:
Позволяет передавать значения при сборке через --build-arg
. Не сохраняются в финальном образе.
Пример:
Инструкция EXPOSE
– открытый порт
Синтаксис:
Описание:
Документирует порты, которые контейнер может слушать. Не пробрасывает их автоматически.
Пример:
Инструкция VOLUME
– том для хранения данных
Синтаксис:
Описание:
Создаёт точку монтирования. Данные сохраняются вне контейнера (анонимный volume).
Пример:
Инструкция USER
– пользователь внутри контейнера
Синтаксис:
Описание:
Определяет пользователя, от которого будут выполняться команды и запускаться процесс.
Пример:
Инструкция LABEL
– метаданные
Синтаксис:
Описание:
Добавляет метки к образу. Используются для документации, мониторинга, автоматизации.
Пример:
📌 См. также:
- 📄 Примеры Dockerfile
- 🏗️ docker build — флаги --build-arg
, --no-cache
, --pull
, --target
- 🚀 docker run — запуск образа после сборки
- 🧩 multi-stage Dockerfile — сборка с несколькими этапами