From dc7c21d95f080aedd8235f8eda19ba1140e746c3 Mon Sep 17 00:00:00 2001 From: egutierrez Date: Tue, 19 Nov 2024 18:20:10 +0100 Subject: [PATCH] Add installation script for Docker and Docker Compose --- instalacion_docker.sh | 79 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 instalacion_docker.sh diff --git a/instalacion_docker.sh b/instalacion_docker.sh new file mode 100644 index 0000000..47b4cc5 --- /dev/null +++ b/instalacion_docker.sh @@ -0,0 +1,79 @@ +#!/bin/sh +# Script para instalar Docker y Docker Compose en un sistema compatible. + +# Verificar que se ejecuta con privilegios de superusuario +if [ "$(id -u)" -ne 0 ]; then + echo "Este script debe ejecutarse como root o con sudo." + exit 1 +fi + +# Actualizar la lista de paquetes +echo "Actualizando lista de paquetes..." +if command -v apt-get >/dev/null 2>&1; then + apt-get update || { echo "Error al actualizar los paquetes"; exit 1; } +elif command -v yum >/dev/null 2>&1; then + yum check-update || { echo "Error al verificar actualizaciones"; exit 1; } +else + echo "No se encontró un gestor de paquetes compatible (apt-get o yum)." + exit 1 +fi + +# Instalar dependencias requeridas +echo "Instalando dependencias requeridas..." +if command -v apt-get >/dev/null 2>&1; then + apt-get install -y ca-certificates curl gnupg lsb-release || { + echo "Error al instalar dependencias"; exit 1; + } +elif command -v yum >/dev/null 2>&1; then + yum install -y yum-utils || { echo "Error al instalar dependencias"; exit 1; } +fi + +# Añadir la clave GPG y el repositorio oficial de Docker +echo "Añadiendo el repositorio de Docker..." +if command -v apt-get >/dev/null 2>&1; then + curl -fsSL https://download.docker.com/linux/$(. /etc/os-release && echo "$ID")/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg || { + echo "Error al añadir la clave GPG de Docker"; exit 1; + } + echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/$(. /etc/os-release && echo "$ID") \ + $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null || { + echo "Error al añadir el repositorio de Docker"; exit 1; + } +elif command -v yum >/dev/null 2>&1; then + yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo || { + echo "Error al añadir el repositorio de Docker"; exit 1; + } +fi + +# Instalar Docker Engine +echo "Instalando Docker..." +if command -v apt-get >/dev/null 2>&1; then + apt-get update + apt-get install -y docker-ce docker-ce-cli containerd.io || { + echo "Error al instalar Docker"; exit 1; + } +elif command -v yum >/dev/null 2>&1; then + yum install -y docker-ce docker-ce-cli containerd.io || { + echo "Error al instalar Docker"; exit 1; + } +fi + +# Iniciar y habilitar Docker +echo "Iniciando y habilitando Docker..." +systemctl start docker || { echo "Error al iniciar Docker"; exit 1; } +systemctl enable docker || { echo "Error al habilitar Docker"; exit 1; } + +# Instalar Docker Compose +echo "Instalando Docker Compose..." +DOCKER_COMPOSE_VERSION="2.20.2" +curl -L "https://github.com/docker/compose/releases/download/v$DOCKER_COMPOSE_VERSION/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose || { + echo "Error al descargar Docker Compose"; exit 1; +} +chmod +x /usr/local/bin/docker-compose || { echo "Error al dar permisos a Docker Compose"; exit 1; } + +# Verificar instalaciones +echo "Verificando instalación..." +docker --version || { echo "Docker no se instaló correctamente"; exit 1; } +docker-compose --version || { echo "Docker Compose no se instaló correctamente"; exit 1; } + +echo "Docker y Docker Compose se han instalado correctamente."