67 lines
1.7 KiB
Plaintext
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 |