Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| docker:comand:01-del_docker [2025/08/12 18:27] – создано admin | docker:comand:01-del_docker [2025/08/13 14:11] (текущий) – admin | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | 12 | + | https:// |
| + | |||
| + | Установка в один клик\\ | ||
| + | < | ||
| + | cd ~ | ||
| + | wget " | ||
| + | tar -xvf docker_complete_removal.tar | ||
| + | chmod +x docker_complete_removal.sh | ||
| + | ./ | ||
| + | </ | ||
| + | |||
| + | ====== Полное удаление Docker и Docker Compose ====== | ||
| + | |||
| + | ===== Описание ===== | ||
| + | |||
| + | Автоматизированный скрипт для полного удаления Docker, Docker Compose и всех связанных компонентов с Linux-системы. Скрипт выполняет комплексную очистку, | ||
| + | |||
| + | ===== Назначение ===== | ||
| + | |||
| + | Скрипт предназначен для случаев, | ||
| + | * Полностью переустановить Docker | ||
| + | * Освободить дисковое пространство от всех Docker-компонентов | ||
| + | * Устранить проблемы с поврежденной установкой Docker | ||
| + | * Подготовить систему к чистой установке Docker | ||
| + | |||
| + | ===== Поддерживаемые системы ===== | ||
| + | |||
| + | * **Ubuntu/ | ||
| + | * **CentOS/ | ||
| + | * **Другие Linux-дистрибутивы** — может потребовать адаптация команд пакетного менеджера | ||
| + | |||
| + | ===== Что удаляет скрипт ===== | ||
| + | |||
| + | ==== Docker-компоненты ==== | ||
| + | |||
| + | * Все запущенные и остановленные контейнеры | ||
| + | * Все Docker-образы | ||
| + | * Все Docker-тома (volumes) | ||
| + | * Пользовательские Docker-сети | ||
| + | * Кэш Docker-системы | ||
| + | |||
| + | ==== Системные компоненты ==== | ||
| + | |||
| + | * Пакеты Docker (docker-ce, docker-ce-cli, | ||
| + | * Docker Compose | ||
| + | * Системные службы Docker | ||
| + | * Группа пользователей docker | ||
| + | |||
| + | ==== Файлы и директории ==== | ||
| + | |||
| + | < | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | ~/ | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | </ | ||
| + | |||
| + | ===== Содержимое скрипта ===== | ||
| + | |||
| + | <code 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 " | ||
| + | if [ -n " | ||
| + | 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/ | ||
| + | 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/ | ||
| + | # 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 / | ||
| + | sudo rm -rf / | ||
| + | sudo rm -rf / | ||
| + | sudo rm -rf / | ||
| + | sudo rm -rf ~/.docker | ||
| + | |||
| + | # 10. Удалить Docker Compose (если установлен отдельно) | ||
| + | echo "10. Удаление Docker Compose..." | ||
| + | sudo rm -f / | ||
| + | sudo rm -f / | ||
| + | |||
| + | # 11. Удалить группу docker | ||
| + | echo "11. Удаление группы docker..." | ||
| + | sudo groupdel docker 2>/ | ||
| + | |||
| + | # 12. Очистка остатков конфигурации | ||
| + | echo "12. Очистка остатков конфигурации..." | ||
| + | sudo rm -rf / | ||
| + | sudo systemctl daemon-reload | ||
| + | |||
| + | # 13. Удалить пользователя из группы docker (замените username на ваше имя пользователя) | ||
| + | echo "13. Удаление пользователя из группы docker..." | ||
| + | sudo deluser $USER docker 2>/ | ||
| + | |||
| + | echo "=== Удаление Docker завершено ===" | ||
| + | echo " | ||
| + | </ | ||
| + | |||
| + | ===== Использование ===== | ||
| + | |||
| + | ==== Создание и подготовка скрипта ==== | ||
| + | |||
| + | 1. Перейдите в домашний каталог пользователя: | ||
| + | |||
| + | <code bash> | ||
| + | cd ~ | ||
| + | </ | ||
| + | |||
| + | 2. Создайте файл скрипта с помощью текстового редактора: | ||
| + | |||
| + | <code bash> | ||
| + | nano remove_docker.sh | ||
| + | </ | ||
| + | |||
| + | //Или используйте другой редактор по выбору:// | ||
| + | |||
| + | <code bash> | ||
| + | vim remove_docker.sh | ||
| + | # или | ||
| + | gedit remove_docker.sh | ||
| + | </ | ||
| + | |||
| + | 3. Скопируйте и вставьте в файл содержимое скрипта (см. раздел " | ||
| + | |||
| + | 4. Сохраните файл: | ||
| + | * В **nano**: нажмите '' | ||
| + | * В **vim**: нажмите '' | ||
| + | * В **gedit**: нажмите '' | ||
| + | |||
| + | 5. Назначьте права на выполнение: | ||
| + | |||
| + | <code bash> | ||
| + | chmod +x remove_docker.sh | ||
| + | </ | ||
| + | |||
| + | 6. Проверьте, | ||
| + | |||
| + | <code bash> | ||
| + | ls -la remove_docker.sh | ||
| + | </ | ||
| + | |||
| + | ==== Запуск скрипта ==== | ||
| + | |||
| + | <code bash> | ||
| + | ./ | ||
| + | </ | ||
| + | |||
| + | ==== После выполнения ==== | ||
| + | |||
| + | Рекомендуется перезагрузить систему для полного удаления всех остатков: | ||
| + | |||
| + | <code bash> | ||
| + | sudo reboot | ||
| + | </ | ||
| + | |||
| + | ===== Особенности выполнения ===== | ||
| + | |||
| + | ==== Безопасность ==== | ||
| + | |||
| + | * Скрипт использует проверки существования объектов перед удалением | ||
| + | * Команды с '' | ||
| + | * Флаг '' | ||
| + | |||
| + | ==== Логирование ==== | ||
| + | |||
| + | Скрипт выводит информацию о каждом этапе выполнения: | ||
| + | * Статус операций | ||
| + | * Сообщения об отсутствии объектов для удаления | ||
| + | * Завершение каждого этапа | ||
| + | |||
| + | ==== Адаптация под систему ==== | ||
| + | |||
| + | Для **CentOS/ | ||
| + | |||
| + | <code bash> | ||
| + | # sudo yum remove -y docker docker-client... | ||
| + | # sudo dnf remove -y docker docker-client... | ||
| + | </ | ||
| + | |||
| + | И закомментируйте строки для Ubuntu/ | ||
| + | |||
| + | ===== Предупреждения ===== | ||
| + | |||
| + | **ВНИМАНИЕ: | ||
| + | |||
| + | ==== Что будет потеряно ==== | ||
| + | |||
| + | * Все контейнеры и их данные | ||
| + | * Все образы (потребуется повторная загрузка) | ||
| + | * Все тома с пользовательскими данными | ||
| + | * Все настройки Docker | ||
| + | |||
| + | ==== Рекомендации перед выполнением ==== | ||
| + | |||
| + | 1. **Создайте резервные копии** важных данных из контейнеров | ||
| + | 2. **Экспортируйте** критически важные образы: | ||
| + | |||
| + | <code bash> | ||
| + | docker save -o image_backup.tar image_name: | ||
| + | </ | ||
| + | |||
| + | 3. **Сохраните** docker-compose.yml файлы для восстановления сервисов | ||
| + | |||
| + | ===== Проверка результата ===== | ||
| + | |||
| + | После выполнения скрипта и перезагрузки проверьте полное удаление: | ||
| + | |||
| + | <code bash> | ||
| + | # Проверка команд Docker | ||
| + | docker --version | ||
| + | docker-compose --version | ||
| + | |||
| + | # Проверка процессов | ||
| + | ps aux | grep docker | ||
| + | |||
| + | # Проверка директорий | ||
| + | ls -la / | ||
| + | ls -la / | ||
| + | |||
| + | # Проверка группы docker | ||
| + | getent group docker | ||
| + | </ | ||
| + | |||
| + | **Важно: | ||
| + | |||
| + | ===== Восстановление ===== | ||
| + | |||
| + | После полного удаления для повторной установки Docker: | ||
| + | |||
| + | ==== Ubuntu/ | ||
| + | |||
| + | <code bash> | ||
| + | curl -fsSL https:// | ||
| + | sudo sh get-docker.sh | ||
| + | sudo usermod -aG docker $USER | ||
| + | </ | ||
| + | |||
| + | ==== CentOS/ | ||
| + | |||
| + | <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 | ||
| + | </ | ||
| + | |||
| + | ===== Альтернативные методы ===== | ||
| + | |||
| + | ==== Частичная очистка ==== | ||
| + | |||
| + | Для менее радикальной очистки без удаления Docker: | ||
| + | |||
| + | <code bash> | ||
| + | docker system prune -a --volumes -f | ||
| + | </ | ||
| + | |||
| + | ==== Только удаление пакетов ==== | ||
| + | |||
| + | Для удаления только пакетов без данных: | ||
| + | |||
| + | <code bash> | ||
| + | sudo apt-get remove docker-ce docker-ce-cli containerd.io | ||
| + | </ | ||
| + | |||
| + | **Важно: | ||