Files
dock/121
2026-01-20 22:17:29 +08:00

67 lines
1.7 KiB
Plaintext

cat << 'EOF' > docker_install.sh
#!/bin/bash
# 颜色定义
GREEN='\033[0;32m'
RED='\033[0;31m'
NC='\033[0m'
echo -e "${GREEN}===== 开始针对 ARM64 设备安装 Docker =====${NC}"
# 1. 彻底清理环境
echo "[1/4] 清理旧的配置与冲突源..."
rm -f /etc/apt/sources.list.d/docker.list*
apt-get remove -y docker docker-engine docker.io containerd runc >/dev/null 2>&1
# 2. 下载适配 aarch64 的官方二进制包
echo "[2/4] 下载 Docker 二进制包 (aarch64)..."
cd /tmp
# 使用静态编译版,不依赖系统版本,兼容性最强
curl -L -o docker-static.tgz https://download.docker.com/linux/static/stable/aarch64/docker-26.1.4.tgz
# 3. 解压并部署
echo "[3/4] 解压并安装二进制文件..."
tar xzvf docker-static.tgz >/dev/null
cp docker/* /usr/bin/
rm -rf docker docker-static.tgz
# 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
# 运行脚本
chmod +x docker_install.sh
./docker_install.sh