Add installation script for Docker and Docker Compose
This commit is contained in:
@@ -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."
|
||||||
Reference in New Issue
Block a user