Создает образ на базе которого строится контейнер.
-
Стандартный образ Docker: образ основаны на полном дистрибутиве Linux, таком как Ubuntu или Debian, включают в себя широкий спектр предустановленных пакетов и зависимостей. Пример:
FROM python:3.8
-
Alpine Linux Docker: Alpine Linux — это легкий дистрибутив Linux, небольшой и безопасный. Образы Docker на базе Alpine обычно намного меньше стандартных образов, поскольку включают в себя только самое необходимое для запуска приложения. Пример:
FROM python:3.8-alphine
-
Slim образ Docker: образ построены на базе Alpine, поскольку они небольшие и эффективные. Однако они не обязательно основаны на Alpine Linux и могут использовать другие облегченные дистрибутивы Linux, такие как CentOS или Debian. Slim образы обычно включают только необходимые пакеты и зависимости для запуска приложения. Пример:
FROM python:3.8-slim
Каждый раз, когда Docker встречает
RUN
инструкцию в Dockerfile, он фактически запускает новый контейнер! Image для этого контейнера состоит из базового образа и всех изменений, внесенных предыдущими инструкциями из Dockerfile, становятся новым слоем в создаваемом образе, и процесс повторяется, начиная со следующей инструкции Dockerfile.
-
FROM — задаёт базовый (родительский) образ.
-
LABEL — описывает метаданные. Например — сведения о том, кто создал и поддерживает образ.
-
ENV — устанавливает постоянные переменные среды. Переменные служат для использования внутри контейнера.
-
ARG — задаёт переменные для передачи Docker во время сборки образа. Переменные недоступны во время выполнения контейнера.
-
COPY — копирует в контейнер файлы и папки.
-
ADD — копирует файлы и папки в контейнер, может распаковывать локальные .tar-файлы.
-
WORKDIR — задаёт рабочую директорию для следующей инструкции.
-
RUN — выполняет команду и создаёт слой образа. Используется для установки в контейнер пакетов.
-
CMD — описывает команду с аргументами, которую нужно выполнить когда контейнер будет запущен. Аргументы могут быть переопределены при запуске контейнера. В файле может присутствовать лишь одна инструкция CMD.
-
ENTRYPOINT — предоставляет команду с аргументами для вызова во время выполнения контейнера. Аргументы не переопределяются.
-
EXPOSE — указывает на необходимость открыть порт (инструкция не открывает порты). Она, скорее, играет роль документации к образу.
-
VOLUME — создаёт точку монтирования для работы с постоянным хранилищем.
Этим список таких инструкций не исчерпывается. В частности, мы не рассмотрели здесь такие инструкции, как USER
, ONBUILD
, STOPSIGNAL
, SHELL
и HEALTHCHECK
. Вот краткий справочник по инструкциям Dockerfile.
Список с содержимым базовых Dockerfile для разных языков программирования👍
4.3.1 Docker Theme | Back To iOSWiki Contents | 4.3.3 Persistance Data Theme