0%
AI提效
Claude Sonnet 4
此系列都是基于AI辅助实现
国外的
1 2
| # 能访问国外的一件搞定,比如我的Bandwagon curl -fsSL https://get.docker.com | sudo bash
|
国内的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
| #!/bin/bash
# Docker和Docker Compose完整安装脚本 for Ubuntu # 支持Ubuntu 20.04/22.04/24.04及更新版本
set -e # 遇到错误时退出
echo "================================" echo "Docker和Docker Compose安装脚本" echo "================================"
# 检查是否为root用户 if [ "$EUID" -eq 0 ]; then echo "请不要使用root用户运行此脚本" echo "请使用普通用户运行:./install_docker.sh" exit 1 fi
# 检查系统版本 if ! command -v lsb_release &> /dev/null; then sudo apt update sudo apt install -y lsb-release fi
UBUNTU_VERSION=$(lsb_release -rs) echo "检测到Ubuntu版本: $UBUNTU_VERSION"
# 备份原有的sources.list echo "1. 备份并配置APT镜像源..." sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup.$(date +%Y%m%d_%H%M%S)
# 配置阿里云APT镜像源 sudo tee /etc/apt/sources.list > /dev/null <<EOF # 阿里云镜像源 deb http://mirrors.aliyun.com/ubuntu/ $(lsb_release -cs) main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ $(lsb_release -cs)-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ $(lsb_release -cs)-backports main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ $(lsb_release -cs)-security main restricted universe multiverse EOF
# 更新系统 echo "2. 更新系统包..." sudo apt update
# 安装必要依赖 echo "3. 安装必要依赖..." sudo apt install -y \ apt-transport-https \ ca-certificates \ curl \ software-properties-common \ gnupg \ lsb-release
# 添加Docker官方GPG密钥(使用阿里云镜像) echo "4. 添加Docker GPG密钥..." curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 添加Docker仓库(使用阿里云镜像) echo "5. 添加Docker仓库..." echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 更新包索引 echo "6. 更新包索引..." sudo apt update
# 安装Docker echo "7. 安装Docker..." sudo apt install -y docker-ce docker-ce-cli containerd.io
# 启动Docker服务并设置开机自启 echo "8. 启动Docker服务..." sudo systemctl start docker sudo systemctl enable docker
# 将当前用户添加到docker组 echo "9. 配置用户权限..." sudo usermod -aG docker $USER
# 配置Docker国内镜像加速器 echo "10. 配置Docker镜像加速器..." sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json > /dev/null <<EOF { "registry-mirrors": [ "https://docker.1ms.run", "https://dockerhub.icu", "https://docker.chenby.cn", "https://dockerproxy.com" ], "log-driver": "json-file", "log-opts": { "max-size": "100m", "max-file": "3" } } EOF
# 重启Docker服务以应用配置 echo "11. 重启Docker服务..." sudo systemctl daemon-reload sudo systemctl restart docker
# 安装Docker Compose echo "12. 安装Docker Compose..."
# 检查Ubuntu版本,选择合适的安装方法 if [[ $(echo "$UBUNTU_VERSION >= 22.04" | bc -l) -eq 1 ]] 2>/dev/null || [[ "$UBUNTU_VERSION" == "22.04" ]] || [[ "$UBUNTU_VERSION" > "22.04" ]]; then # Ubuntu 22.04及以上版本,使用官方插件 echo " 使用官方插件安装Docker Compose..." sudo apt install -y docker-compose-plugin COMPOSE_CMD="docker compose" else # Ubuntu 20.04及以下版本,使用二进制文件安装 echo " 使用二进制文件安装Docker Compose..." COMPOSE_VERSION="v2.24.1" sudo curl -L "https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose COMPOSE_CMD="docker-compose" fi
# 等待Docker服务完全启动 echo "13. 等待Docker服务启动..." sleep 3
# 测试安装 echo "14. 测试安装..." echo "Docker版本:" docker --version
echo "Docker Compose版本:" if [[ "$COMPOSE_CMD" == "docker compose" ]]; then docker compose version else docker-compose --version fi
echo "Docker服务状态:" sudo systemctl is-active docker
echo "" echo "================================" echo "安装完成!" echo "================================" echo "" echo "重要提示:" echo "1. 请重新登录系统或运行 'newgrp docker' 来使用户组权限生效" echo "2. 然后运行 'docker run hello-world' 来测试安装" echo "" if [[ "$COMPOSE_CMD" == "docker compose" ]]; then echo "Docker Compose命令: docker compose (注意是空格)" echo "如果习惯使用 docker-compose,可以创建别名:" echo "echo 'alias docker-compose=\"docker compose\"' >> ~/.bashrc && source ~/.bashrc" else echo "Docker Compose命令: docker-compose" fi echo "" echo "常用命令:" echo " docker --version # 查看Docker版本" echo " $COMPOSE_CMD version # 查看Docker Compose版本" echo " docker images # 查看镜像列表" echo " docker ps # 查看运行中的容器" echo " docker run hello-world # 测试Docker安装" echo "" echo "镜像加速器已配置,拉取镜像速度会更快!" echo "" echo "如需卸载Docker,请运行:" echo "sudo apt purge docker-ce docker-ce-cli containerd.io docker-compose-plugin" echo "sudo rm -rf /var/lib/docker /etc/docker"
|