#!/bin/bash
#################################################################
# 脚本名称: install_k3s.sh
# 创建用户: hexiaoshi
# 创建时间: 2024-07-18
# 脚本描述: 安装 docker 及相关组件
# 使用方法: sudo ./docker_install.sh
#################################################################



# 检查是否以 root 权限运行
if [ "$EUID" -ne 0 ]; then 
    echo "请使用 root 权限运行此脚本"
    exit 1
fi

# 检查 Docker 是否已安装
if command -v docker &> /dev/null; then
    echo "Docker 已经安装，版本信息："
    docker --version
    exit 0
fi

# 创建临时目录用于下载文件
cd /tmp

# 下载 Docker 安装包
echo "开始下载 Docker 安装包..."
if ! wget http://183.3.220.117:8090/docker-24.0.9.tgz; then
    echo "下载失败，请检查网络连接或链接是否有效"
    exit 1
fi

# 解压安装包
echo "解压 Docker 安装包..."
tar xzf docker-24.0.9.tgz

# 将二进制文件复制到系统目录
echo "安装 Docker 二进制文件..."
cp /tmp/docker/* /usr/bin/

# 创建 docker.service 系统服务文件
cat > /etc/systemd/system/docker.service <<EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process

[Install]
WantedBy=multi-user.target
EOF

# 创建 docker 配置目录
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
    "registry-mirrors": [
        "https://mirror.ccs.tencentyun.com",
        "https://hub-mirror.c.163.com",
        "https://mirror.baidubce.com"
    ]
}
EOF

# 重新加载系统服务
systemctl daemon-reload

# 启动 Docker 服务
systemctl start docker
systemctl enable docker

# 检查安装结果
if command -v docker &> /dev/null; then
    echo "Docker 安装成功！"
    docker --version
    echo "Docker 服务状态："
    systemctl status docker
else
    echo "Docker 安装失败，请检查安装日志"
    exit 1
fi

# 清理安装文件
rm -f /tmp/docker-24.0.9.tgz
rm -rf /tmp/docker

echo "安装过程完成"

