Автоматизация очистки неиспользуемых Docker images в Bash

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

dockerbashочистка

👁 В продакшн-средах часто накапливаются старые образы Docker, которые больше не используются, но остаются на диске и занимают много места. Часто забываем о старых образах, особенно в CI/CD пайплайнах. А с помощью Bash можно легко автоматизировать очистку, чтобы не тратить время на ручную проверку.

📝 Вот пример скрипта, который находит неиспользуемые образы и удаляет их:

#!/bin/bash

# Ожидание всех процессов остановки контейнеров
docker ps -aq | xargs docker stop &> /dev/null

# Удаляем все остановленные контейнеры
docker ps -aq | xargs docker rm &> /dev/null

# Находим неиспользуемые образы и удаляем их
docker images -q --filter "dangling=true" | xargs docker rmi &> /dev/null

# Очистка неиспользуемых volumes
docker volume ls -qf "dangling=true" | xargs docker volume rm &> /dev/null

echo "Очистка завершена!"

📌 Как это работает:

  • Останавливает все контейнеры — сначала останавливаются все работающие контейнеры (через docker stop)
  • Удаляет все остановленные контейнеры — чтобы не было мусора в виде остановленных контейнеров (через docker rm)
  • Удаляет неиспользуемые образы — очищает неиспользуемые образы (с помощью фильтра --filter "dangling=true")
  • Удаляет неиспользуемые volumes — избавляется от неиспользуемых томов, которые могут занимать много места

❗️ Это решение идеально подходит для серверов, где Docker работает долго и образы быстро накапливаются. Можете настроить выполнение скрипта каждую неделю, чтобы автоматизировать очистку без вмешательства.

tags: #docker #bash #полезно

❤️ @recura_tech

Скриншот терминала с примером Bash-скрипта для очистки неиспользуемых Docker-образов: видны команды stop, rm, rmi и логотип RECURA.
Скриншот примера Bash-скрипта для удаления остановленных контейнеров, dangling images и volumes.

Читайте так же