本脚本可自动判断服务器网络地理位置(是否位于中国大陆),并根据情况安装 Docker 与 Docker Compose,并自动配置国内镜像加速源(如阿里云、中科大等),加快安装与镜像拉取速度。


✅ 脚本特性说明

  1. 自动检测是否已安装 Docker / Docker Compose
  2. 如果未安装:
    • Docker:调用 get.docker.com 官方脚本,若在国内则使用 Aliyun 镜像加速
    • 自动配置国内镜像加速源:阿里云 / 中科大 / 网易 / 清华 / 百度云
    • Docker Compose:从 GitHub releases 获取最新版本,支持 ghproxy 国内加速下载
  3. 安装完成后会自动设置 Docker 为开机自动启动
  4. 安装前提示是否执行安装操作,避免误修改
  5. 脚本支持以下操作系统:
    • Ubuntu ≥ 16.04
    • Debian ≥ 8
    • CentOS ≥ 7
    • 以及大多数 Linux 发行版/VPS/云主机

📦 使用方式(适用于 Linux)

  1. 将脚本保存为任意文件,例如:
vim docker-auto-install.sh
  1. 添加执行权限并运行:
chmod +x docker-auto-install.sh
sudo ./docker-auto-install.sh

🧰 脚本源码(精简注释)

》》》点击展开脚本源码(兼容国内)《《《
#!/bin/bash

set -e

#####################################
# 🔐 判断当前是否为 root 用户
#####################################
if [ "$(id -u)" -ne 0 ]; then
  echo "❌  请用 root 用户或加 sudo 执行本脚本!"
  exit 1
fi

echo "🌐 正在检测国内/国外网络环境..."

#####################################
# 🌏 判断是否在中国
#####################################
is_in_china=false
country_code=$(curl -s --max-time 5 https://ipapi.co/country || echo "US")

if [[ "$country_code" == "CN" ]]; then
  is_in_china=true
  echo "✅ 检测到当前处于中国大陆,将使用腾讯云镜像源"
else
  echo "✅ 非中国大陆环境,使用 Docker 官方源"
fi

#####################################
# 🔧 准备必要组件
#####################################
echo "🔧 更新 apt 并安装依赖..."
apt-get update -y
apt-get install -y ca-certificates curl gnupg lsb-release apt-transport-https software-properties-common

# 创建密钥存储目录
install -m 0755 -d /etc/apt/keyrings

#####################################
# 📦 添加镜像源和 GPG KEY
#####################################
if [ "$is_in_china" = true ]; then
  # 腾讯云 GPG
  curl -fsSL https://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
  chmod a+r /etc/apt/keyrings/docker.asc

  # 添加腾讯云镜像仓库
  echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu \
  $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

else
  # 官方 Docker GPG
  curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  chmod a+r /etc/apt/keyrings/docker.gpg

  # 添加官方仓库
  echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
fi

#####################################
# 🚀 安装 Docker + Compose Plugin
#####################################
echo "📦 安装 Docker 组件..."
apt-get update -y
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 启动 Docker 并开机自启
systemctl enable docker
systemctl start docker

#####################################
# 🚀 配置加速器(仅中国区域)
#####################################
if [ "$is_in_china" = true ]; then
  echo "⚙️ 配置中国区镜像加速器 https://docker.1ms.run"
  mkdir -p /etc/docker
  cat <<EOF > /etc/docker/daemon.json
{
  "registry-mirrors": ["https://docker.1ms.run"]
}
EOF
  systemctl daemon-reexec
  systemctl restart docker
fi

#####################################
# ✔️ 安装完成信息
#####################################
echo ""
echo "✅ Docker 和 Docker Compose 安装成功!"
echo "🧱 Docker 版本:$(docker --version)"
echo "🔧 Docker Compose 插件:$(docker compose version | head -n 1)"
echo ""
echo "📘 使用示例:"
echo "   docker run hello-world"
echo "   docker compose up"

✅ 安装结束后效果预期

  • Docker 已能直接使用,支持 systemd 开机自动启动
  • Docker Compose 可直接通过命令 docker-compose 调用
  • 若服务器在中国大陆,镜像源加速已自动配置

示例输出:

Docker 已安装:Docker version 24.0.6
Docker Compose 已安装:Docker Compose version v2.24.6

📘 常用 Docker Compose 命令列表

命令 作用说明
docker compose up 启动服务(构建镜像)
docker compose up -d 后台模式启动
docker compose down 关闭并移除所有服务与网络
docker compose ps 查看服务容器状态
docker compose logs 查看日志
docker compose logs -f 实时日志输出
docker compose build (重新)构建镜像
docker compose restart 重启所有服务
docker compose exec app bash 进入服务容器(app)并执行 bash 命令
docker compose pull 拉取 compose 文件中定义的镜像

✳️ 附加说明

  • Docker Compose 官方支持两种用法:

    • 旧方式:docker-compose(需要单独安装二进制)
    • 新方式(推荐):docker compose(随 Docker CLI 集成提供)
  • 本脚本优先安装 docker-compose 二进制版本(兼容性强)

  • 镜像源 “https://docker.1ms.run" 可替换为你的专属阿里云镜像地址

作者:freed  创建时间:2025-03-28 14:51
最后编辑:freed  更新时间:2025-03-30 12:02