Linux

Управление Docker-образами: просмотр, удаление и оптимизация в Linux

В этом руководстве вы узнаете, как работать с Docker-образами в Linux-системе: просматривать их, удалять ненужные, очищать кэш и оптимизировать размер образов. После выполнения инструкции вы сможете контролировать размер образа и избежать накопления мусора.

Обновлено 28 июня 2026 г.
10-15 мин
Средняя
FixPedia Team
Применимо к:Docker 20.10+Ubuntu 22.04Linux Mint 21Debian 12

Введение / Зачем это нужно

Управление Docker-образами — важная часть поддержания чистой и производительной системы. Накопление устаревших или больших образов занимает дисковое пространство, замедляет работу деплоя и может создавать путаницу при выборе нужного образа. После выполнения этого руководства вы сможете быстро просматривать, удалять и оптимизировать Docker-образы, что поможет вам поддерживать порядок в окружении Docker и избежать проблем с нехваткой места.

Требования / Подготовка

  • Установленный Docker (>=20.10) на Linux-системе.
  • Пользователь, имеющий права выполнения команд Docker (обычно добавлен в группу docker).
  • Достаточно свободного места для операций очистки.
  • Базовые знания работы с терминалом Linux.

Управление Docker-образами

Шаг 1: Просмотр списка Docker-образов

Сначала посмотрите, какие образы у вас есть.

docker images --format "table {{.Repository}}:{{.Tag}} {{.Size}}"

Этот формат вывода показывает репозиторий, тег и размер каждого образа в удобочитаемом виде.

Шаг 2: Удаление конкретного образа

Если вам нужен определенный образ, удалите его с помощью docker rmi.

docker rmi <image_name>[:tag]

Замените <image_name> на фактическое имя образа (например, nginx или myapp:latest). После удаления образ исчезнет из списка docker images.

Шаг 3: Очистка неиспользуемых образов

Для удаления всех образов, которые больше не используются никакими контейнерами, выполните команду:

docker image prune -a

Флаг -a также включает одноразовые образы (без тега). Подтвердите удаление, когда система попросит.

Шаг 4: Полная очистка кэша Docker

Более радикальная очистка — это docker system prune. Она удаляет неиспользуемые контейнеры, сети, кэши образов и даже ненужные объемы.

docker system prune -a --volumes

Используйте --volumes, если вам также нужно очистить данные томов, которые больше не привязаны к контейнерам.

Шаг 5: Оптимизация размера образа

Чтобы сделать образы меньше и быстрее, следуйте этим советам при сборке:

  1. Добавьте .dockerignore — исключите ненужные файлы (логи, временные файлы, .git и т.д.).
  2. Используйте многослойную сборку — каждая инструкция в Dockerfile создает новый слой; объединяйте похожие операции (например, установка пакетов) в один слой.
  3. Удалите ненужные пакеты — если вы используете дистрибутив Linux внутри образа, удалите кэши apt после установки (rm -rf /var/lib/apt/lists/*).
  4. Кэшируйте только необходимые слои — используйте --cache-from и --cache-to, чтобы повторно использовать уже собранные слои.

Пример Dockerfile с несколькими этапами сборки:

FROM ubuntu:22.04 AS builder
RUN apt-get update && apt-get install -y --no-install-recommends python3 python3-pip
WORKDIR /app
COPY requirements.txt .
RUN pip3 install -r requirements.txt

FROM ubuntu:22.04
RUN apt-get update && apt-get install -y --no-install-recommends python3 && rm -rf /var/lib/apt/lists/*
COPY --from=builder /usr/local/lib/python3.10/site-packages/ /usr/local/lib/python3.10/site-packages/
COPY --from=builder /app/ /app/
CMD ["python3", "-m", "app"]

Проверка результата

После выполнения шагов проверьте, что операции прошли успешно:

docker images --format "table {{.Repository}}:{{.Tag}} {{.Size}}"

Если ненужные образы исчезли, вы увидите только оставшиеся образы. Также вы можете проверить освобождение места с помощью df -h.

Возможные проблемы

  • Error: No such image – возможно, вы ввели неверное имя или тег. Проверьте список с помощью docker images.
  • Error response from daemon: conflict: unable to delete... – образ используется запущенным контейнером. Остановите контейнер (docker stop <container>) или выполните docker container prune.
  • Error: conflict: unable to delete <image>... used by <container> – удалите или остановите все контейнеры, которые ссылаются на образ, перед удалением.
  • Дисковое пространство все еще низкое – убедитесь, что вы также удалили объемы (docker volume prune) и проверьте содержимое /var/lib/docker на наличие больших ненужных файлов.

⚠️ Важно: всегда проверяйте дважды команды удаления, особенно docker rmi и docker system prune, чтобы не удалить образ, который вам еще нужен.

💡 Совет: добавьте алиасы в ваш .bashrc или .zshrc, например dimages="docker images --format 'table {{.Repository}}:{{.Tag}} {{.Size}}'", чтобы быстро вызывать часто используемые команды Docker.

Часто задаваемые вопросы

Как просмотреть все Docker-образа на системе?
Что делать, если команда `docker rmi` выдает ошибку 'Cannot remove...'?'
Как очистить кэш и удалить все неиспользуемые данные Docker?
Как оптимизировать размер Docker-образа перед публикацией?

Полезное

Просмотр списка Docker-образов
Удаление конкретного образа
Очистка неиспользуемых образов
Полная очистка кэша Docker
Оптимизация размера образа

Эта статья помогла вам решить проблему?