docker:comand:01-del_docker

https://dokuwiki.nanokey.tech/_media/docker:comand:docker_complete_removal.tar

Установка в один клик

cd ~
wget "https://dokuwiki.nanokey.tech/_media/docker:comand:docker_complete_removal.tar" -O docker_complete_removal.tar
tar -xvf docker_complete_removal.tar
chmod +x docker_complete_removal.sh
./docker_complete_removal.sh

Полное удаление Docker и Docker Compose

Автоматизированный скрипт для полного удаления Docker, Docker Compose и всех связанных компонентов с Linux-системы. Скрипт выполняет комплексную очистку, включая контейнеры, образы, тома, сети, системные файлы и конфигурации.

Скрипт предназначен для случаев, когда необходимо:

  • Полностью переустановить Docker
  • Освободить дисковое пространство от всех Docker-компонентов
  • Устранить проблемы с поврежденной установкой Docker
  • Подготовить систему к чистой установке Docker
  • Ubuntu/Debian — полная поддержка
  • CentOS/RHEL/Fedora — требует раскомментирования соответствующих строк
  • Другие Linux-дистрибутивы — может потребовать адаптация команд пакетного менеджера
  • Все запущенные и остановленные контейнеры
  • Все Docker-образы
  • Все Docker-тома (volumes)
  • Пользовательские Docker-сети
  • Кэш Docker-системы
  • Пакеты Docker (docker-ce, docker-ce-cli, containerd.io)
  • Docker Compose
  • Системные службы Docker
  • Группа пользователей docker
/var/lib/docker/
/var/lib/containerd/
/etc/docker/
/var/run/docker.sock
~/.docker/
/usr/local/bin/docker-compose
/usr/bin/docker-compose
/etc/systemd/system/docker.service.d/
#!/bin/bash
 
echo "=== Полное удаление Docker и Docker Compose ==="
 
# 1. Остановить все запущенные контейнеры
echo "1. Остановка всех контейнеров..."
docker ps -q | grep -q . && docker stop $(docker ps -q) || echo "Контейнеры не запущены"
 
# 2. Удалить все контейнеры
echo "2. Удаление всех контейнеров..."
docker ps -aq | grep -q . && docker rm -vf $(docker ps -aq) || echo "Нет контейнеров для удаления"
 
# 3. Удалить все образы
echo "3. Удаление всех образов..."
docker images -q | grep -q . && docker rmi -f $(docker images -q) || echo "Нет образов для удаления"
 
# 4. Удалить все тома
echo "4. Удаление всех томов..."
docker volume ls -q | grep -q . && docker volume rm $(docker volume ls -q) || echo "Нет томов для удаления"
 
# 5. Удалить пользовательские сети
echo "5. Удаление пользовательских сетей..."
USER_NETWORKS=$(docker network ls --filter "type=custom" -q)
if [ -n "$USER_NETWORKS" ]; then
  docker network rm $USER_NETWORKS
else
  echo "Нет пользовательских сетей для удаления"
fi
 
# 6. Полная очистка системы Docker
echo "6. Полная очистка системы Docker..."
docker system prune -a --volumes -f
 
# 7. Остановить Docker службу
echo "7. Остановка Docker службы..."
sudo systemctl stop docker
sudo systemctl stop docker.socket
sudo systemctl stop containerd
 
# 8. Удалить Docker пакеты (для Ubuntu/Debian)
echo "8. Удаление Docker пакетов..."
sudo apt-get purge -y docker-engine docker docker.io docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo apt-get autoremove -y --purge docker-engine docker docker.io docker-ce docker-compose-plugin
 
# Для CentOS/RHEL/Fedora раскомментируйте следующие строки:
# sudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine docker-ce docker-ce-cli containerd.io docker-compose-plugin
# sudo dnf remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine docker-ce docker-ce-cli containerd.io docker-compose-plugin
 
# 9. Удалить все Docker файлы и директории
echo "9. Удаление всех Docker файлов и директорий..."
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
sudo rm -rf /etc/docker
sudo rm -rf /var/run/docker.sock
sudo rm -rf ~/.docker
 
# 10. Удалить Docker Compose (если установлен отдельно)
echo "10. Удаление Docker Compose..."
sudo rm -f /usr/local/bin/docker-compose
sudo rm -f /usr/bin/docker-compose
 
# 11. Удалить группу docker
echo "11. Удаление группы docker..."
sudo groupdel docker 2>/dev/null || echo "Группа docker не существует"
 
# 12. Очистка остатков конфигурации
echo "12. Очистка остатков конфигурации..."
sudo rm -rf /etc/systemd/system/docker.service.d
sudo systemctl daemon-reload
 
# 13. Удалить пользователя из группы docker (замените username на ваше имя пользователя)
echo "13. Удаление пользователя из группы docker..."
sudo deluser $USER docker 2>/dev/null || echo "Пользователь не в группе docker"
 
echo "=== Удаление Docker завершено ==="
echo "Перезагрузите систему для полного удаления всех остатков"

1. Перейдите в домашний каталог пользователя:

cd ~

2. Создайте файл скрипта с помощью текстового редактора:

nano remove_docker.sh

Или используйте другой редактор по выбору:

vim remove_docker.sh
# или
gedit remove_docker.sh

3. Скопируйте и вставьте в файл содержимое скрипта (см. раздел «Содержимое скрипта» выше)

4. Сохраните файл:

  • В nano: нажмите Ctrl+O, затем Enter, затем Ctrl+X
  • В vim: нажмите Esc, введите :wq, нажмите Enter
  • В gedit: нажмите Ctrl+S, затем закройте редактор

5. Назначьте права на выполнение:

chmod +x remove_docker.sh

6. Проверьте, что файл создан и имеет права на выполнение:

ls -la remove_docker.sh
./remove_docker.sh

Рекомендуется перезагрузить систему для полного удаления всех остатков:

sudo reboot
  • Скрипт использует проверки существования объектов перед удалением
  • Команды с || echo предотвращают остановку скрипта при отсутствии объектов
  • Флаг -f обеспечивает принудительное выполнение без интерактивных запросов

Скрипт выводит информацию о каждом этапе выполнения:

  • Статус операций
  • Сообщения об отсутствии объектов для удаления
  • Завершение каждого этапа

Для CentOS/RHEL/Fedora раскомментируйте строки:

# sudo yum remove -y docker docker-client...
# sudo dnf remove -y docker docker-client...

И закомментируйте строки для Ubuntu/Debian.

ВНИМАНИЕ: Данный скрипт ПОЛНОСТЬЮ УДАЛЯЕТ все Docker-данные!

  • Все контейнеры и их данные
  • Все образы (потребуется повторная загрузка)
  • Все тома с пользовательскими данными
  • Все настройки Docker

1. Создайте резервные копии важных данных из контейнеров 2. Экспортируйте критически важные образы:

docker save -o image_backup.tar image_name:tag

3. Сохраните docker-compose.yml файлы для восстановления сервисов

После выполнения скрипта и перезагрузки проверьте полное удаление:

# Проверка команд Docker
docker --version
docker-compose --version
 
# Проверка процессов
ps aux | grep docker
 
# Проверка директорий
ls -la /var/lib/docker
ls -la /etc/docker
 
# Проверка группы docker
getent group docker

Важно: Все команды должны вернуть ошибки или пустые результаты.

После полного удаления для повторной установки Docker:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker $USER

Для менее радикальной очистки без удаления Docker:

docker system prune -a --volumes -f

Для удаления только пакетов без данных:

sudo apt-get remove docker-ce docker-ce-cli containerd.io

Важно: Всегда делайте резервные копии перед полным удалением Docker!

  • docker/comand/01-del_docker.txt
  • Последнее изменение: 2025/08/13 14:11
  • admin