From 1c01e3e18eb3f5f132cbf0230f1c724265550e5a Mon Sep 17 00:00:00 2001 From: lc Date: Thu, 13 Feb 2025 02:50:58 +0000 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?= =?UTF-8?q?=20/?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker.sh | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 docker.sh diff --git a/docker.sh b/docker.sh new file mode 100644 index 0000000..538d423 --- /dev/null +++ b/docker.sh @@ -0,0 +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 +} + +main \ No newline at end of file