#!/bin/bash
# 加载公共函数库
source <(curl -sSL https://www.klquan.com/scripts/common.sh)

# 基础配置（每个脚本不一样）
server="docker-2"
home="/data"
download_patch="https://download.docker.com/linux/static/stable/x86_64/"

# 1.获取软件安装包并选择版本
all_package=($(get_packages "$server" "$download_patch"))
package=$(select_version "$1" "${all_package[@]}")
show_usage

# 2.确认信息
countdown "$home" "$package"

# 3.安装过程（每个脚本不一样）
echo "【1】下载源码包"
    curl -L -o "$home/$package" -# "$packages_url$package"
    check

echo "【2】解压并安装"
    cd $home
    tar xf "$package" && rm -f "$package"
    mv docker/* /usr/bin
    rm -rf $home/docker
    check
echo "【3】配置优化服务参数"
#mkdir -p /data/env/docker && mkdir -p /etc/docker
mkdir -p /etc/docker
cat <<EOF > /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://0a939c269180f3500f93c00c4bdc1020.mirror.swr.myhuaweicloud.com",
    "https://h54wladc.mirror.aliyuncs.com"
  ],
  "insecure-registries": ["192.168.8.110"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}
EOF

echo "【4】配置systemd管理"
cat > /usr/lib/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
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload && systemctl enable docker  >/dev/null 2>&1
systemctl restart docker  >/dev/null 2>&1
#systemctl status docker
check
echo "    ····查看执行：systemctl status docker"

echo "【完成】路径在/usr/bin下"
echo "    ····执行docker --version查看结果"
