docker:comand:01-del_docker

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
docker:comand:01-del_docker [2025/08/12 18:27] – создано admindocker:comand:01-del_docker [2025/08/13 14:11] (текущий) admin
Строка 1: Строка 1:
-12+https://dokuwiki.nanokey.tech/_media/docker:comand:docker_complete_removal.tar 
 + 
 +Установка в один клик\\ 
 +<code> 
 +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 
 +</code> 
 + 
 +====== Полное удаление Docker и Docker Compose ====== 
 + 
 +===== Описание ===== 
 + 
 +Автоматизированный скрипт для полного удаления Docker, Docker Compose и всех связанных компонентов с Linux-системы. Скрипт выполняет комплексную очистку, включая контейнеры, образы, тома, сети, системные файлы и конфигурации. 
 + 
 +===== Назначение ===== 
 + 
 +Скрипт предназначен для случаев, когда необходимо: 
 +  * Полностью переустановить Docker 
 +  * Освободить дисковое пространство от всех Docker-компонентов 
 +  * Устранить проблемы с поврежденной установкой Docker 
 +  * Подготовить систему к чистой установке Docker 
 + 
 +===== Поддерживаемые системы ===== 
 + 
 +  * **Ubuntu/Debian** — полная поддержка 
 +  * **CentOS/RHEL/Fedora** — требует раскомментирования соответствующих строк 
 +  * **Другие Linux-дистрибутивы** — может потребовать адаптация команд пакетного менеджера 
 + 
 +===== Что удаляет скрипт ===== 
 + 
 +==== Docker-компоненты ==== 
 + 
 +  * Все запущенные и остановленные контейнеры 
 +  * Все Docker-образы 
 +  * Все Docker-тома (volumes) 
 +  * Пользовательские Docker-сети 
 +  * Кэш Docker-системы 
 + 
 +==== Системные компоненты ==== 
 + 
 +  * Пакеты Docker (docker-ce, docker-ce-cli, containerd.io) 
 +  * Docker Compose 
 +  * Системные службы Docker 
 +  * Группа пользователей docker 
 + 
 +==== Файлы и директории ==== 
 + 
 +<code> 
 +/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/ 
 +</code> 
 + 
 +===== Содержимое скрипта ===== 
 + 
 +<code bash> 
 +#!/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 "Перезагрузите систему для полного удаления всех остатков" 
 +</code> 
 + 
 +===== Использование ===== 
 + 
 +==== Создание и подготовка скрипта ==== 
 + 
 +1. Перейдите в домашний каталог пользователя: 
 + 
 +<code bash> 
 +cd ~ 
 +</code> 
 + 
 +2. Создайте файл скрипта с помощью текстового редактора: 
 + 
 +<code bash> 
 +nano remove_docker.sh 
 +</code> 
 + 
 +//Или используйте другой редактор по выбору:// 
 + 
 +<code bash> 
 +vim remove_docker.sh 
 +# или 
 +gedit remove_docker.sh 
 +</code> 
 + 
 +3. Скопируйте и вставьте в файл содержимое скрипта (см. раздел "Содержимое скрипта" выше) 
 + 
 +4. Сохраните файл: 
 +   * В **nano**: нажмите ''Ctrl+O'', затем ''Enter'', затем ''Ctrl+X'' 
 +   * В **vim**: нажмите ''Esc'', введите '':wq'', нажмите ''Enter'' 
 +   * В **gedit**: нажмите ''Ctrl+S'', затем закройте редактор 
 + 
 +5. Назначьте права на выполнение: 
 + 
 +<code bash> 
 +chmod +x remove_docker.sh 
 +</code> 
 + 
 +6. Проверьте, что файл создан и имеет права на выполнение: 
 + 
 +<code bash> 
 +ls -la remove_docker.sh 
 +</code> 
 + 
 +==== Запуск скрипта ==== 
 + 
 +<code bash> 
 +./remove_docker.sh 
 +</code> 
 + 
 +==== После выполнения ==== 
 + 
 +Рекомендуется перезагрузить систему для полного удаления всех остатков: 
 + 
 +<code bash> 
 +sudo reboot 
 +</code> 
 + 
 +===== Особенности выполнения ===== 
 + 
 +==== Безопасность ==== 
 + 
 +  * Скрипт использует проверки существования объектов перед удалением 
 +  * Команды с ''|| echo'' предотвращают остановку скрипта при отсутствии объектов 
 +  * Флаг ''-f'' обеспечивает принудительное выполнение без интерактивных запросов 
 + 
 +==== Логирование ==== 
 + 
 +Скрипт выводит информацию о каждом этапе выполнения: 
 +  * Статус операций 
 +  * Сообщения об отсутствии объектов для удаления 
 +  * Завершение каждого этапа 
 + 
 +==== Адаптация под систему ==== 
 + 
 +Для **CentOS/RHEL/Fedora** раскомментируйте строки: 
 + 
 +<code bash> 
 +# sudo yum remove -y docker docker-client... 
 +# sudo dnf remove -y docker docker-client... 
 +</code> 
 + 
 +И закомментируйте строки для Ubuntu/Debian. 
 + 
 +===== Предупреждения ===== 
 + 
 +**ВНИМАНИЕ: Данный скрипт ПОЛНОСТЬЮ УДАЛЯЕТ все Docker-данные!** 
 + 
 +==== Что будет потеряно ==== 
 + 
 +  * Все контейнеры и их данные 
 +  * Все образы (потребуется повторная загрузка) 
 +  * Все тома с пользовательскими данными 
 +  * Все настройки Docker 
 + 
 +==== Рекомендации перед выполнением ==== 
 + 
 +1. **Создайте резервные копии** важных данных из контейнеров 
 +2. **Экспортируйте** критически важные образы: 
 + 
 +<code bash> 
 +docker save -o image_backup.tar image_name:tag 
 +</code> 
 + 
 +3. **Сохраните** docker-compose.yml файлы для восстановления сервисов 
 + 
 +===== Проверка результата ===== 
 + 
 +После выполнения скрипта и перезагрузки проверьте полное удаление: 
 + 
 +<code bash> 
 +# Проверка команд Docker 
 +docker --version 
 +docker-compose --version 
 + 
 +# Проверка процессов 
 +ps aux | grep docker 
 + 
 +# Проверка директорий 
 +ls -la /var/lib/docker 
 +ls -la /etc/docker 
 + 
 +# Проверка группы docker 
 +getent group docker 
 +</code> 
 + 
 +**Важно:** Все команды должны вернуть ошибки или пустые результаты. 
 + 
 +===== Восстановление ===== 
 + 
 +После полного удаления для повторной установки Docker: 
 + 
 +==== Ubuntu/Debian ==== 
 + 
 +<code bash> 
 +curl -fsSL https://get.docker.com -o get-docker.sh 
 +sudo sh get-docker.sh 
 +sudo usermod -aG docker $USER 
 +</code> 
 + 
 +==== CentOS/RHEL/Fedora ==== 
 + 
 +<code bash> 
 +sudo yum install -y docker-ce docker-ce-cli containerd.io 
 +sudo systemctl start docker 
 +sudo systemctl enable docker 
 +sudo usermod -aG docker $USER 
 +</code> 
 + 
 +===== Альтернативные методы ===== 
 + 
 +==== Частичная очистка ==== 
 + 
 +Для менее радикальной очистки без удаления Docker: 
 + 
 +<code bash> 
 +docker system prune -a --volumes -f 
 +</code> 
 + 
 +==== Только удаление пакетов ==== 
 + 
 +Для удаления только пакетов без данных: 
 + 
 +<code bash> 
 +sudo apt-get remove docker-ce docker-ce-cli containerd.io 
 +</code> 
 + 
 +**Важно:** Всегда делайте резервные копии перед полным удалением Docker!
  • docker/comand/01-del_docker.1755023251.txt.gz
  • Последнее изменение: 2025/08/12 18:27
  • admin