Полное и безопасное удаление Docker Engine с Debian 12 (Bookworm) и Debian 13 (Trixie) — включая все компоненты, конфиги, образы, контейнеры, тома и кэш.

Внимание: Это полное удаление. Все данные контейнеров, образы, тома будут безвозвратно удалены.

Шаг 1: Остановить и удалить все контейнеры

# Остановить все запущенные контейнеры
sudo docker stop $(sudo docker ps -q) 2>/dev/null || true

# Удалить ВСЕ контейнеры (включая остановленные)
sudo docker rm $(sudo docker ps -aq) 2>/dev/null || true

-q — только ID, без лишнего вывода
|| true — игнорировать ошибки, если Docker не установлен

Шаг 2: Удалить все образы, тома, сети, кэш

# Удалить ВСЕ образы
sudo docker rmi $(sudo docker images -aq) 2>/dev/null || true

# Удалить ВСЕ неиспользуемые тома
sudo docker volume prune -f

# Удалить ВСЕ неиспользуемые сети
sudo docker network prune -f

# Удалить весь кэш сборки
sudo docker builder prune -af

Опция -f — без подтверждения
Опция -a — удалить все, включая используемые (осторожно!)

Шаг 3: Удалить Docker и все связанные пакеты

# Основные пакеты Docker
sudo apt-get purge -y docker-ce docker-ce-cli containerd.io \
   docker-buildx-plugin docker-compose-plugin

# Дополнительные пакеты (если были установлены)
sudo apt-get purge -y docker-scan-plugin docker-ce-rootless-extras

# Удалить зависимости, которые больше не нужны
sudo apt-get autoremove -y

purge — удаляет пакеты + конфигурационные файлы

Шаг 4: Удалить официальный репозиторий Docker

# Удалить файл репозитория
sudo rm -f /etc/apt/sources.list.d/docker.list

# Удалить GPG-ключ
sudo rm -f /etc/apt/keyrings/docker.asc

Шаг 5: Удалить все данные Docker (образы, контейнеры, тома, конфиги)

# Основная директория данных Docker
sudo rm -rf /var/lib/docker

# Конфигурация containerd
sudo rm -rf /var/lib/containerd

# Логи
sudo rm -rf /var/log/docker*
sudo rm -rf /var/log/containerd*

# Конфиги systemd (если есть)
sudo rm -rf /etc/docker
sudo rm -rf /etc/containerd

# Плагин compose (если установлен отдельно)
sudo rm -rf ~/.docker/cli-plugins/docker-compose

Внимание: /var/lib/docker — все ваши образы, тома, контейнеры. После удаления — восстановление невозможно.

Шаг 6: Очистить кэш apt

sudo apt-get clean
sudo apt-get update

Шаг 7: Перезагрузить систему (рекомендуется)

sudo reboot

Чтобы убедиться, что systemd не держит старые юниты.

Проверка: Docker полностью удалён?

# Должны выдать "command not found"
docker --version
docker-compose --version
containerd --version
# Не должно быть процессов
ps aux | grep -i docker
ps aux | grep -i containerd
# Не должно быть юнитов
sudo systemctl status docker
sudo systemctl status containerd

Итог: Что удалено?

Компонент Путь Удалено?
Пакеты docker-ce, containerd.io и др. Да (purge)
Репозиторий /etc/apt/sources.list.d/docker.list Да
GPG-ключ /etc/apt/keyrings/docker.asc Да
Данные /var/lib/docker Да
Конфиги /etc/docker, /etc/containerd Да
Логи /var/log/docker* Да
Плагины ~/.docker/cli-plugins Да
Юниты systemd docker.service, containerd.service Да

Полный скрипт удаления (одной командой)

#!/bin/bash
set -e

echo "Полное удаление Docker с Debian 12/13..."

# 1. Остановить и удалить контейнеры
sudo docker stop $(sudo docker ps -q) 2>/dev/null || true
sudo docker rm $(sudo docker ps -aq) 2>/dev/null || true

# 2. Удалить образы, тома, сети, кэш
sudo docker rmi -f $(sudo docker images -aq) 2>/dev/null || true
sudo docker volume prune -f 2>/dev/null || true
sudo docker network prune -f 2>/dev/null || true
sudo docker builder prune -af 2>/dev/null || true

# 3. Удалить пакеты
sudo apt-get purge -y docker-ce docker-ce-cli containerd.io \
   docker-buildx-plugin docker-compose-plugin \
   docker-scan-plugin docker-ce-rootless-extras 2>/dev/null || true
sudo apt-get autoremove -y

# 4. Удалить репозиторий и ключ
sudo rm -f /etc/apt/sources.list.d/docker.list
sudo rm -f /etc/apt/keyrings/docker.asc

# 5. Удалить все данные
sudo rm -rf /var/lib/docker /var/lib/containerd
sudo rm -rf /var/log/docker* /var/log/containerd*
sudo rm -rf /etc/docker /etc/containerd
sudo rm -rf ~/.docker/cli-plugins

# 6. Очистить кэш
sudo apt-get clean
sudo apt-get update

echo "Docker полностью удалён."
echo "Рекомендуется перезагрузить систему: sudo reboot"

Сохраните как uninstall-docker.sh, сделайте исполняемым:

chmod +x uninstall-docker.sh
sudo ./uninstall-docker.sh