Skip to main content

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>            # история слоев образа