#!/bin/bash

# 安装 Docker（国内 Ubuntu 优化版）
# 使用方法：sudo ./install_docker.sh

# 1. 卸载旧版本
echo "卸载旧版 Docker..."
sudo apt-get remove -y docker docker-engine docker.io containerd runc

# 2. 安装依赖工具
echo "安装依赖工具..."
sudo apt-get update
sudo apt-get install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

# 3. 添加 Docker 官方 GPG 密钥（使用阿里云镜像）
echo "添加 Docker GPG 密钥..."
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 4. 添加阿里云 Docker 软件源
echo "添加阿里云 Docker 源..."
echo \
  "deb [arch=amd64 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

# 5. 安装 Docker
echo "安装 Docker..."
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io

# 6. 配置国内镜像加速
echo "配置镜像加速..."
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.xuanyuan.me",
    "https://registry.docker-cn.com"
  ]
}
EOF

# 7. 重启 Docker 服务
echo "重启 Docker..."
sudo systemctl daemon-reload
sudo systemctl restart docker

# 8. 验证安装
echo "验证安装..."
sudo docker run hello-world

# 9. 非 root 用户免 sudo 执行（可选）
read -p "是否将当前用户加入 Docker 组？[y/N] " choice
if [[ "$choice" =~ ^[Yy] ]]; then
    echo "将用户 $USER 加入 docker 组..."
    sudo usermod -aG docker $USER
    newgrp docker  # 临时生效（需重新登录终端）
    echo "注意：当前终端可能无法立即生效，请重新登录或打开新终端！"
fi

echo "✔ Docker 安装完成！"
