Что первично: Docker Container, Docker Image или Dockerfile?

«Что первично: Docker Container, Docker Image или Dockerfile?» — вопрос из категории Docker, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Dockerfile — это исходный файл с инструкциями для сборки образа. Он всегда является отправной точкой.

Порядок создания и запуска:

  1. Dockerfile: Пишем файл с инструкциями.
  2. Docker Image: Собираем образ командой docker build -t my-app:latest .. Образ — это неизменяемый шаблон, содержащий код, зависимости и конфигурацию.
  3. Docker Container: Запускаем экземпляр образа командой docker run my-app:latest. Контейнер — это изолированный, работающий процесс.

Пример простого Dockerfile:

# Используем базовый образ
FROM alpine:latest
# Копируем файлы приложения
COPY app.py /app/
# Устанавливаем рабочую директорию
WORKDIR /app
# Определяем команду для запуска
CMD ["python3", "app.py"]

Ключевая аналогия: Dockerfile — это чертеж (исходный код), Image — собранный исполняемый пакет (как .exe файл), Container — запущенный процесс.