Основы образов Docker
Понимание образов Docker
Образы Docker — это фундаментальные компоненты технологии контейнеров, служащие в качестве неизменяемых шаблонов для создания контейнеров. Эти лёгкие и переносимые пакеты содержат всё необходимое для запуска приложения, включая код, среду выполнения, библиотеки и системные инструменты.
Ключевые характеристики образов Docker
| Характеристика |
Описание |
| Неизменяемость |
Образы не могут быть изменены после создания |
| Многослойная структура |
Состоят из нескольких неизменяемых слоёв |
| Переносимость |
Могут быть разделены и запущены в различных средах |
Рабочий процесс создания образа
graph TD
A[Dockerfile] --> B[Build Image]
B --> C[Image Repository]
C --> D[Container Deployment]
Создание образа Docker: Практический пример
Вот подробный пример создания образа Docker для веб-приложения Python на Ubuntu 22.04:
## Использование официального исполняемого файла Python в качестве базового образа
FROM python:3.9-slim
## Установка рабочей директории
WORKDIR /app
## Копирование файлов проекта
COPY . /app
## Установка зависимостей
RUN pip install --no-cache-dir -r requirements.txt
## Экспонирование порта приложения
EXPOSE 5000
## Определение переменной окружения
ENV FLASK_APP=app.py
## Запуск приложения
CMD ["flask", "run", "--host=0.0.0.0"]
Команды для построения и управления образами
## Построение образа Docker
docker build -t myapp:v1 .
## Список локальных образов
docker images
## Удаление конкретного образа
docker rmi myapp:v1
## Добавление тега к образу
docker tag myapp:v1 myregistry/myapp:latest
Основы образов
Образы Docker используют технологию Union File System, что обеспечивает эффективное хранение и быстрый запуск контейнеров. Каждый образ состоит из нескольких неизменяемых слоёв, которые складываются и объединяются во время работы контейнера.
Типы образов
| Тип образа |
Описание |
| Базовые образы |
Минимальные образы операционной системы |
| Официальные образы |
Поддерживаются Docker Hub |
| Пользовательские образы |
Создаются разработчиками для конкретных приложений |
Учёт производительности
Образы Docker оптимизируют использование ресурсов благодаря:
- Минимальному размеру слоёв
- Эффективным механизмам кэширования
- Требованиям к лёгкой среде выполнения