docker 安装脚本(国内)
适用于 Debian/Ubuntu 系统
- 新建/编辑文件
nano install-docker-cn.sh; - 赋权执行
chmod +x install-docker-cn.sh; - 执行脚本
./install-docker-cn.sh;
#!/bin/bash
set -e
echo "=== Docker 安装脚本启动 ==="
# 检查是否已安装 Docker
if command -v docker >/dev/null 2>&1; then
echo "⚠️ 发现系统已安装 Docker:$(docker --version)"
read -p "是否继续覆盖安装?(y/N): " confirm
if [[ "$confirm" != "y" && "$confirm" != "Y" ]]; then
echo "✅ 安装中止,未修改系统。"
exit 0
fi
fi
echo "=== [1/6] 更新系统包索引(包含重试逻辑) ==="
for i in {1..3}; do
apt-get update -y && break || {
echo "⚠️ apt-get update 失败,重试中 ($i/3)..."
sleep 2
}
done
echo "=== [2/6] 安装依赖软件包 ==="
apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release \
software-properties-common
echo "=== [3/6] 添加 Docker 官方 GPG 密钥(清华镜像) ==="
mkdir -p /usr/share/keyrings
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-ce.gpg
echo "=== [4/6] 配置 Docker 软件源为清华镜像 ==="
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian \
$(lsb_release -sc) stable" | tee /etc/apt/sources.list.d/docker.list
echo "=== [5/6] 再次更新包索引 ==="
apt-get update -y
echo "=== [6/6] 安装 Docker 组件 ==="
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# zero_free镜像服务
# https://github.com/cmliu/CF-Workers-docker.io
echo "=== 🛠 配置 Docker 镜像加速器(jsDelivr Cloudflare Workers) ==="
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.jsdelivr.fyi",
"https://dockercf.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi"
]
}
EOF
echo "=== 🔄 重启 Docker 并设置开机自启 ==="
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
echo "✅ Docker 安装并配置完成!使用 'docker version' 检查版本。"