cat > /root/docker-offline-install.sh <<'EOF' #!/bin/sh ZIP_NAME="dockde12.zip" WORKDIR="/root/docker-offline" URL1="https://freeyx.vps3344.dpdns.org/xui/dockde12.zip" URL2="https://pub-b69a7194f4ea42fba6aa990c49bded91.r2.dev/xui/dockde12.zip" echo "===== Docker Debian12 离线安装脚本 =====" date # 1. 基础检查 echo "[1/7] 检查 dpkg" command -v dpkg >/dev/null 2>&1 || { echo "[错误] 系统没有 dpkg,无法使用 DEB 离线安装" exit 1 } mkdir -p "$WORKDIR" cd "$WORKDIR" || exit 1 # 2. 获取安装包 if [ ! -f "$ZIP_NAME" ]; then echo "[2/7] 下载离线安装包(主地址)" curl -L --fail "$URL1" -o "$ZIP_NAME" || { echo "[警告] 主地址失败,使用备用地址" curl -L --fail "$URL2" -o "$ZIP_NAME" || { echo "[错误] 离线包下载失败" exit 1 } } else echo "[2/7] 已存在离线包,跳过下载" fi # 3. 解压 echo "[3/7] 解压安装包" rm -rf debs mkdir debs unzip -o "$ZIP_NAME" -d debs || { echo "[错误] 解压失败" exit 1 } cd debs || exit 1 # 4. 强制安装(忽略依赖) echo "[4/7] 使用 dpkg 强制安装全部 DEB" dpkg -i *.deb || echo "[提示] 依赖错误已忽略,继续执行" # 5. 尝试修复(如果 apt 还能用就赚到) echo "[5/7] 尝试修复依赖(可失败)" apt-get -f install -y >/dev/null 2>&1 || echo "[提示] apt 修复失败,已跳过" # 6. 尝试启动 Docker echo "[6/7] 尝试启动 Docker" if command -v systemctl >/dev/null 2>&1; then systemctl daemon-reexec >/dev/null 2>&1 systemctl enable docker >/dev/null 2>&1 systemctl start docker >/dev/null 2>&1 fi sleep 2 # 7. 验证 echo "[7/7] 验证 Docker 状态" if command -v docker >/dev/null 2>&1; then docker version || echo "[警告] docker 命令存在,但 daemon 未启动" else echo "[错误] docker 命令未安装成功" fi echo "===== 脚本执行结束 =====" date EOF