From 5489de1e707a43d8d157ae265b3b4da24a934e5d Mon Sep 17 00:00:00 2001 From: lc Date: Thu, 13 Feb 2025 02:51:36 +0000 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20docker.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker.sh | 180 +++++++++++++++++++++++++++--------------------------- 1 file changed, 90 insertions(+), 90 deletions(-) diff --git a/docker.sh b/docker.sh index 538d423..337bc3d 100644 --- a/docker.sh +++ b/docker.sh @@ -1,91 +1,91 @@ -#!/bin/bash - -# 默认使用国内镜像 -USE_CHINA_MIRROR="yes" - -# 询问用户是否使用国内镜像 -read -p "是否使用国内镜像站点安装 Docker 和 Docker Compose?[yes/no] (默认: yes): " USE_CHINA_MIRROR -USE_CHINA_MIRROR=${USE_CHINA_MIRROR:-yes} - -# 设置镜像站点 -if [ "$USE_CHINA_MIRROR" = "yes" ]; then - DOCKER_MIRROR="https://mirrors.aliyun.com/docker-ce" - DOCKER_COMPOSE_URL="https://get.daocloud.io/docker/compose/releases/download" - echo "使用国内镜像站点安装 Docker 和 Docker Compose。" -else - DOCKER_MIRROR="https://download.docker.com" - DOCKER_COMPOSE_URL="https://github.com/docker/compose/releases/download" - echo "使用官方站点安装 Docker 和 Docker Compose。" -fi - -# 方法 1:固定版本号(根据需要手动更新) -DOCKER_COMPOSE_VERSION="v2.23.0" - -# 方法 2:从阿里云镜像站点获取版本号(无需访问 GitHub) -if [ "$USE_CHINA_MIRROR" = "yes" ]; then - DOCKER_COMPOSE_VERSION=$(curl -s https://mirrors.aliyun.com/docker-ce/linux/static/stable-x86_64/ | grep -oP 'docker-compose-\K.*(?=-linux-x86_64)' | tail -1) -fi - -# 检测操作系统类型 -if [ -f /etc/os-release ]; then - . /etc/os-release - OS=$ID - VERSION=$VERSION_ID -else - echo "无法检测操作系统类型" - exit 1 -fi - -# 安装 Docker -install_docker() { - case $OS in - "debian") - sudo apt-get update - sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common - curl -fsSL ${DOCKER_MIRROR}/linux/debian/gpg | sudo apt-key add - - sudo add-apt-repository "deb [arch=amd64] ${DOCKER_MIRROR}/linux/debian $(lsb_release -cs) stable" - sudo apt-get update - sudo apt-get install -y docker-ce docker-ce-cli containerd.io - ;; - "ubuntu") - sudo apt-get update - sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common - curl -fsSL ${DOCKER_MIRROR}/linux/ubuntu/gpg | sudo apt-key add - - sudo add-apt-repository "deb [arch=amd64] ${DOCKER_MIRROR}/linux/ubuntu $(lsb_release -cs) stable" - sudo apt-get update - sudo apt-get install -y docker-ce docker-ce-cli containerd.io - ;; - "centos"|"rocky"|"almalinux") - sudo yum install -y yum-utils - sudo yum-config-manager --add-repo ${DOCKER_MIRROR}/linux/centos/docker-ce.repo - sudo yum install -y docker-ce docker-ce-cli containerd.io - ;; - *) - echo "不支持的操作系统: $OS" - exit 1 - ;; - esac - - # 启动并启用 Docker 服务 - sudo systemctl start docker - sudo systemctl enable docker -} - -# 安装 Docker Compose -install_docker_compose() { - echo "正在安装 Docker Compose 版本: $DOCKER_COMPOSE_VERSION" - sudo curl -L "${DOCKER_COMPOSE_URL}/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose - sudo chmod +x /usr/local/bin/docker-compose -} - -# 主函数 -main() { - install_docker - install_docker_compose - - echo "Docker 和 Docker Compose 安装完成!" - docker --version - docker-compose --version -} - +#!/bin/bash + +# 默认使用国内镜像 +USE_CHINA_MIRROR="yes" + +# 询问用户是否使用国内镜像 +read -p "是否使用国内镜像站点安装 Docker 和 Docker Compose? [yes/no] (默认: yes): " USE_CHINA_MIRROR +USE_CHINA_MIRROR=${USE_CHINA_MIRROR:-yes} + +# 设置镜像站点 +if [ "$USE_CHINA_MIRROR" = "yes" ]; then + DOCKER_MIRROR="https://mirrors.aliyun.com/docker-ce" + DOCKER_COMPOSE_URL="https://get.daocloud.io/docker/compose/releases/download" + echo "使用国内镜像站点安装 Docker 和 Docker Compose。" +else + DOCKER_MIRROR="https://download.docker.com" + DOCKER_COMPOSE_URL="https://github.com/docker/compose/releases/download" + echo "使用官方站点安装 Docker 和 Docker Compose。" +fi + +# 方法 1:固定版本号(根据需要手动更新) +DOCKER_COMPOSE_VERSION="v2.23.0" + +# 方法 2:从阿里云镜像站点获取版本号(无需访问 GitHub) +if [ "$USE_CHINA_MIRROR" = "yes" ]; then + DOCKER_COMPOSE_VERSION=$(curl -s https://mirrors.aliyun.com/docker-ce/linux/static/stable-x86_64/ | grep -oP 'docker-compose-\K.*(?=-linux-x86_64)' | tail -1) +fi + +# 检测操作系统类型 +if [ -f /etc/os-release ]; then + . /etc/os-release + OS=$ID + VERSION=$VERSION_ID +else + echo "无法检测操作系统类型" + exit 1 +fi + +# 安装 Docker +install_docker() { + case $OS in + "debian") + sudo apt-get update + sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common + curl -fsSL ${DOCKER_MIRROR}/linux/debian/gpg | sudo apt-key add - + sudo add-apt-repository "deb [arch=amd64] ${DOCKER_MIRROR}/linux/debian $(lsb_release -cs) stable" + sudo apt-get update + sudo apt-get install -y docker-ce docker-ce-cli containerd.io + ;; + "ubuntu") + sudo apt-get update + sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common + curl -fsSL ${DOCKER_MIRROR}/linux/ubuntu/gpg | sudo apt-key add - + sudo add-apt-repository "deb [arch=amd64] ${DOCKER_MIRROR}/linux/ubuntu $(lsb_release -cs) stable" + sudo apt-get update + sudo apt-get install -y docker-ce docker-ce-cli containerd.io + ;; + "centos"|"rocky"|"almalinux") + sudo yum install -y yum-utils + sudo yum-config-manager --add-repo ${DOCKER_MIRROR}/linux/centos/docker-ce.repo + sudo yum install -y docker-ce docker-ce-cli containerd.io + ;; + *) + echo "不支持的操作系统: $OS" + exit 1 + ;; + esac + + # 启动并启用 Docker 服务 + sudo systemctl start docker + sudo systemctl enable docker +} + +# 安装 Docker Compose +install_docker_compose() { + echo "正在安装 Docker Compose 版本: $DOCKER_COMPOSE_VERSION" + sudo curl -L "${DOCKER_COMPOSE_URL}/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose + sudo chmod +x /usr/local/bin/docker-compose +} + +# 主函数 +main() { + install_docker + install_docker_compose + + echo "Docker 和 Docker Compose 安装完成!" + docker --version + docker-compose --version +} + main \ No newline at end of file