更新 121

This commit is contained in:
2026-01-20 22:17:29 +08:00
parent a4f0b8c761
commit 9ef336f741

79
121
View File

@@ -1,30 +1,67 @@
cat << 'EOF' > env_check.sh cat << 'EOF' > docker_install.sh
#!/bin/bash #!/bin/bash
echo "========== 正在收集系统环境信息 =========="
echo "[1/6] 架构检查:"
uname -m
dpkg --print-architecture
echo -e "\n[2/6] 内核与系统版本:" # 颜色定义
uname -a GREEN='\033[0;32m'
lsb_release -a 2>/dev/null || cat /etc/issue RED='\033[0;31m'
NC='\033[0m'
echo -e "\n[3/6] 存储空间检查 (/vol1/1000/dock):" echo -e "${GREEN}===== 开始针对 ARM64 设备安装 Docker =====${NC}"
df -h /vol1/1000 2>/dev/null || echo "警告: /vol1/1000 目录未挂载或不存在"
echo -e "\n[4/6] 检查残留的安装包与进程:" # 1. 彻底清理环境
dpkg -l | grep -E "docker|containerd|runc" | awk '{print $2, $3}' echo "[1/4] 清理旧的配置与冲突源..."
ps aux | grep -E "dockerd|containerd" | grep -v grep rm -f /etc/apt/sources.list.d/docker.list*
apt-get remove -y docker docker-engine docker.io containerd runc >/dev/null 2>&1
echo -e "\n[5/6] 检查异常的软件源配置 (可能导致报错的原因):" # 2. 下载适配 aarch64 的官方二进制包
ls /etc/apt/sources.list.d/ echo "[2/4] 下载 Docker 二进制包 (aarch64)..."
grep -r "docker" /etc/apt/sources.list* cd /tmp
# 使用静态编译版,不依赖系统版本,兼容性最强
curl -L -o docker-static.tgz https://download.docker.com/linux/static/stable/aarch64/docker-26.1.4.tgz
echo -e "\n[6/6] 网络测试 (Docker官方连接性):" # 3. 解压并部署
curl -I -s --connect-timeout 5 https://download.docker.com > /dev/null && echo "可以访问 Docker 官方源" || echo "无法访问 Docker 官方源" echo "[3/4] 解压并安装二进制文件..."
tar xzvf docker-static.tgz >/dev/null
cp docker/* /usr/bin/
rm -rf docker docker-static.tgz
echo -e "\n========== 检查完成 ==========" # 4. 配置并启动服务
echo "[4/4] 配置系统服务..."
# 创建最小化配置
mkdir -p /etc/docker
cat <<DOCKER_CONF > /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.m.daocloud.io"]
}
DOCKER_CONF
# 编写 systemd 服务文件
cat <<SERVICE_CONF > /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
After=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
Restart=on-failure
[Install]
WantedBy=multi-user.target
SERVICE_CONF
# 启动服务
systemctl daemon-reload
systemctl enable docker
systemctl restart docker
# 结果验证
if docker --version >/dev/null 2>&1; then
echo -e "${GREEN}Docker 安装成功!${NC}"
docker --version
else
echo -e "${RED}安装失败,请检查网络或日志。${NC}"
fi
EOF EOF
chmod +x env_check.sh # 运行脚本
./env_check.sh chmod +x docker_install.sh
./docker_install.sh