Docker — Images (Управление образами)
Эта страница объясняет, что такое Docker-образы (Images), как они создаются, хранятся и управляются. Здесь разобраны основные команды для просмотра, загрузки, удаления и очистки образов. Материал рассчитан на начинающих и помогает понять, как работают Docker-образы и как управлять ими на сервере.
Что такое Docker Image
Docker Image — это шаблон контейнера, из которого создаются запущенные контейнеры.
Проще говоря:
Docker Image → контейнер
Пример:
nginx:1.25 → контейнер nginx
mysql:8 → контейнер mysql
node:18 → контейнер node
Image содержит:
- операционную систему
- зависимости
- приложение
- конфигурацию запуска
Контейнер создаётся на основе образа и запускается как отдельный процесс.
Как работают Docker Images
Docker Images состоят из слоёв (layers).
Пример:
Base OS
↓
System packages
↓
Application dependencies
↓
Application code
Каждый слой кэшируется. Это позволяет Docker ускорять сборку образов.
Просмотр образов
Показать список образов
docker images
Пример вывода:
REPOSITORY TAG IMAGE ID SIZE
nginx 1.25 a1b2c3d4e5 142MB
mysql 8 f6g7h8i9j0 520MB
node 18 k1l2m3n4o5 1.2GB
Что означает каждая колонка
| Поле | Описание |
|---|---|
| REPOSITORY | имя образа |
| TAG | версия образа |
| IMAGE ID | уникальный ID |
| SIZE | размер образа |
Загрузка образа из registry
Docker может скачивать готовые образы из Docker Hub или другого registry.
docker pull <image>
Пример:
docker pull nginx:1.25
После этого образ появится в списке docker images.
Теги образов
Docker использует теги для обозначения версии образа.
Пример:
nginx:latest
nginx:1.25
node:18
Почему не стоит использовать latest
Тег latest может измениться в любой момент.
Лучше использовать фиксированную версию:
nginx:1.25
Это делает окружение более предсказуемым.
Удаление Docker Images
Удалить образ
docker rmi <image>
Пример:
docker rmi nginx:1.25
Удалить образ по ID
docker rmi <image_id>
Пример:
docker rmi a1b2c3d4e5
Удалить неиспользуемые образы
docker image prune -f
Удаляются dangling images — образы, которые больше не используются.
Полная очистка старых образов
Если на сервере накопилось много старых образов:
docker system prune -a
Эта команда удалит:
- остановленные контейнеры
- неиспользуемые образы
- сети
- build cache
Важно: Использовать эту команду нужно осторожно, особенно на production.
Сборка образа
Образы можно создавать самостоятельно через Dockerfile.
Пример сборки:
docker build -t my_app .
Где:
| Параметр | Значение |
|---|---|
| -t | тег образа |
| my_app | имя образа |
| . | текущая директория |
Проверка истории образа
Можно посмотреть, из каких слоёв состоит образ:
docker history <image>
Пример:
docker history nginx
Это помогает понять:
- какие команды выполнялись при сборке
- размер каждого слоя
Использование образа для запуска контейнера
Контейнер можно запустить напрямую:
docker run nginx
Но чаще используется Docker Compose.
Пример:
services:
nginx:
image: nginx:1.25
Поиск образов
Можно искать образы на Docker Hub:
docker search nginx
Пример результата:
NAME DESCRIPTION
nginx Official build of Nginx
nginx-unit Nginx Unit runtime
Лучше использовать официальные образы.
Типичные проблемы с образами
Слишком много образов на сервере
Проверить:
docker images
Удалить старые:
docker image prune -f
Образ не обновляется
Если используется:
nginx:latest
Docker может использовать старую версию.
Решение:
docker pull nginx
Слишком большой размер образа
Некоторые образы могут занимать несколько гигабайт.
Проверить:
docker images
При необходимости удалить неиспользуемые.
Краткая памятка
docker images # список образов
docker pull <image> # скачать образ
docker search <image> # поиск образа
docker rmi <image> # удалить образ
docker image prune -f # удалить неиспользуемые образы
docker build -t <name> . # собрать образ
docker history <image> # история слоев образа