Bot Discord - Commit completo con todos los cambios
This commit is contained in:
93
downgrade_docker.sh
Executable file
93
downgrade_docker.sh
Executable file
@@ -0,0 +1,93 @@
|
||||
#!/bin/bash
|
||||
|
||||
# ==============================================================================
|
||||
# Script para hacer Downgrade de Docker en sistemas basados en Debian/Ubuntu (v2)
|
||||
# ==============================================================================
|
||||
#
|
||||
# ADVERTENCIA: Este script desinstalará la versión actual de Docker
|
||||
# y eliminará los datos de Docker existentes (imágenes, contenedores, volúmenes).
|
||||
# Se recomienda hacer una copia de seguridad si tienes datos importantes.
|
||||
#
|
||||
# Uso:
|
||||
# 1. Guarda este script como 'downgrade_docker.sh'.
|
||||
# 2. Dale permisos de ejecución: chmod +x downgrade_docker.sh
|
||||
# 3. Ejecútalo con sudo: sudo ./downgrade_docker.sh
|
||||
#
|
||||
# ==============================================================================
|
||||
|
||||
set -e # Termina el script si algún comando falla
|
||||
|
||||
# --- 1. Definir la versión de Docker a instalar ---
|
||||
# Cambia esta variable si deseas una versión diferente.
|
||||
# Busca versiones disponibles con: apt-cache madison docker-ce
|
||||
# El formato debe ser como "5:27.1.1-1~ubuntu.22.04~jammy"
|
||||
# Dejaremos esto en blanco por ahora para que puedas elegir de la lista.
|
||||
TARGET_DOCKER_VERSION=""
|
||||
|
||||
echo "--- Iniciando el proceso de downgrade de Docker (v2) ---"
|
||||
|
||||
# --- 2. Desbloquear (unhold) paquetes de Docker ---
|
||||
echo "Paso 1: Desbloqueando paquetes de Docker existentes..."
|
||||
sudo apt-mark unhold docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin || echo "No se encontraron paquetes de Docker bloqueados, continuando."
|
||||
|
||||
# --- 3. Detener los servicios de Docker ---
|
||||
echo "Paso 2: Deteniendo los servicios de Docker..."
|
||||
sudo systemctl stop docker.service
|
||||
sudo systemctl stop docker.socket
|
||||
sudo systemctl stop containerd
|
||||
|
||||
# --- 4. Desinstalar la versión actual de Docker ---
|
||||
echo "Paso 3: Desinstalando los paquetes de Docker actuales..."
|
||||
# Se agrega --allow-change-held-packages para asegurar la desinstalación
|
||||
sudo apt-get remove --allow-change-held-packages -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
|
||||
sudo apt-get purge -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
|
||||
sudo apt-get autoremove -y --purge
|
||||
|
||||
# --- 5. Limpiar directorios residuales (¡CUIDADO!) ---
|
||||
echo "Paso 4: Limpiando directorios de Docker (esto eliminará imágenes y contenedores)..."
|
||||
# Comentado por seguridad. Descomenta si realmente quieres una limpieza completa.
|
||||
# sudo rm -rf /var/lib/docker
|
||||
# sudo rm -rf /var/lib/containerd
|
||||
|
||||
# --- 6. Asegurar que el repositorio de Docker esté configurado ---
|
||||
echo "Paso 5: Configurando el repositorio de Docker..."
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y ca-certificates curl
|
||||
sudo install -m 0755 -d /etc/apt/keyrings
|
||||
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
|
||||
sudo chmod a+r /etc/apt/keyrings/docker.asc
|
||||
|
||||
# Añadir el repositorio a las fuentes de Apt
|
||||
echo \
|
||||
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
|
||||
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
|
||||
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
sudo apt-get update
|
||||
|
||||
# --- 7. Listar las versiones disponibles y solicitar al usuario que elija ---
|
||||
echo "Paso 6: Versiones de Docker disponibles en el repositorio:"
|
||||
apt-cache madison docker-ce | awk '{print $3}'
|
||||
|
||||
echo -e "\nPor favor, copia y pega la versión exacta que deseas instalar de la lista anterior (ej: 5:27.1.1-1~ubuntu.22.04~jammy):"
|
||||
read -r TARGET_DOCKER_VERSION
|
||||
|
||||
if [ -z "$TARGET_DOCKER_VERSION" ]; then
|
||||
echo "No se ha seleccionado ninguna versión. Abortando."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# --- 8. Instalar la versión de Docker seleccionada ---
|
||||
echo "Paso 7: Instalando la versión $TARGET_DOCKER_VERSION..."
|
||||
sudo apt-get install -y docker-ce=$TARGET_DOCKER_VERSION docker-ce-cli=$TARGET_DOCKER_VERSION containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
|
||||
# --- 9. Verificar la instalación ---
|
||||
echo "Paso 8: Verificando la versión de Docker instalada..."
|
||||
docker --version
|
||||
|
||||
# --- 10. Bloquear la versión de Docker (opcional pero recomendado) ---
|
||||
echo "Paso 9: Bloqueando la versión de Docker para evitar actualizaciones automáticas."
|
||||
sudo apt-mark hold docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
|
||||
echo -e "\n--- Proceso de downgrade de Docker completado. ---"
|
||||
echo "Recuerda reiniciar los servicios que dependen de Docker, como CasaOS o los contenedores específicos."
|
||||
echo "Puedes reiniciar el servicio de Docker con: sudo systemctl restart docker"
|
||||
Reference in New Issue
Block a user