Что такое Docker Image и как его создать

Ответ

Docker Image — это неизменяемый (immutable) шаблон, который содержит все необходимое для запуска приложения: код, среду выполнения, библиотеки, переменные окружения и конфигурационные файлы.

Образ создается с помощью файла инструкций Dockerfile.

Ключевые аспекты:

  • Слои: Каждая инструкция в Dockerfile (например, RUN, COPY, ADD) создает новый слой в образе. Docker кэширует слои, что ускоряет последующие сборки.
  • Оптимизация: Для уменьшения размера образа и ускорения сборки рекомендуется объединять команды RUN, использовать .dockerignore для исключения ненужных файлов и выбирать минималистичные базовые образы (например, alpine).

Пример Dockerfile для Python-приложения:

# 1. Указываем базовый образ
FROM python:3.9-slim

# 2. Устанавливаем рабочую директорию внутри контейнера
WORKDIR /app

# 3. Копируем файл зависимостей и устанавливаем их
# Этот шаг выполняется отдельно, чтобы использовать кэш Docker,
# если код меняется, а зависимости - нет.
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# 4. Копируем остальной код приложения
COPY . .

# 5. Указываем команду для запуска приложения
CMD ["python", "./app.py"]

Сборка образа выполняется командой:

docker build -t my-python-app:latest .