更新 121
This commit is contained in:
79
121
79
121
@@ -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
|
||||||
Reference in New Issue
Block a user