Ответ
Такой Dockerfile является минимально валидным. При его сборке будет создан новый образ, который содержательно и по слоям будет идентичен указанному базовому образу, но с другим тегом (идентификатором).
Что происходит:
- Docker загружает базовый образ (если его нет локально) из реестра (например, Docker Hub).
- Создается новый образ-слой, который является ссылкой на базовый. Фактически, это тот же самый набор файлов.
- Новому образу присваивается тег, указанный в команде
docker build -t.
Пример Dockerfile:
FROM alpine:3.18
После сборки docker build -t my-alpine . образ my-alpine:latest будет точной копией alpine:3.18.
Зачем это может быть нужно?
- Тегирование: Создание собственного именованного тега для базового образа, чтобы зафиксировать конкретную версию в CI/CD пайплайне.
- Базовый образ для многоэтапной сборки: Использование в первой стадии
FROM ... AS builder. - Отправная точка: Создание минимального шаблона для дальнейших модификаций. В моей практике мы часто начинали с
FROM ubuntu:jammyилиFROM golang:1.21-alpine, а затем добавляли инструкцииCOPY,RUNиCMD.