本脚本可自动判断服务器网络地理位置(是否位于中国大陆),并根据情况安装 Docker 与 Docker Compose,并自动配置国内镜像加速源(如阿里云、中科大等),加快安装与镜像拉取速度。
✅ 脚本特性说明
- 自动检测是否已安装 Docker / Docker Compose
- 如果未安装:
- Docker:调用 get.docker.com 官方脚本,若在国内则使用 Aliyun 镜像加速
- 自动配置国内镜像加速源:阿里云 / 中科大 / 网易 / 清华 / 百度云
- Docker Compose:从 GitHub releases 获取最新版本,支持 ghproxy 国内加速下载
- 安装完成后会自动设置 Docker 为开机自动启动
- 安装前提示是否执行安装操作,避免误修改
- 脚本支持以下操作系统:
- Ubuntu ≥ 16.04
- Debian ≥ 8
- CentOS ≥ 7
- 以及大多数 Linux 发行版/VPS/云主机
📦 使用方式(适用于 Linux)
- 将脚本保存为任意文件,例如:
vim docker-auto-install.sh
- 添加执行权限并运行:
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
最后编辑:freed 更新时间:2025-03-30 12:02