96 lines
2.7 KiB
Bash
96 lines
2.7 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
|
||
|
|
# 定义颜色变量,用于输出提示信息
|
||
|
|
GREEN="\033[32m"
|
||
|
|
RED="\033[31m"
|
||
|
|
NC="\033[0m" # 重置颜色
|
||
|
|
|
||
|
|
# 1. 解压 docker 压缩包
|
||
|
|
echo -e "${GREEN}开始解压 docker-28.4.0.tgz...${NC}"
|
||
|
|
if tar -xf docker-28.4.0.tgz; then
|
||
|
|
echo -e "${GREEN}压缩包解压成功${NC}"
|
||
|
|
else
|
||
|
|
echo -e "${RED}压缩包解压失败,请检查文件是否存在或权限是否足够${NC}"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
# 2. 移动 docker 二进制文件到 /usr/bin
|
||
|
|
echo -e "${GREEN}开始移动 docker 文件到 /usr/bin...${NC}"
|
||
|
|
if mv docker/* /usr/bin/; then
|
||
|
|
echo -e "${GREEN}文件移动成功${NC}"
|
||
|
|
else
|
||
|
|
echo -e "${RED}文件移动失败,请检查 docker 目录是否存在或权限是否足够${NC}"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
# 3. 创建 docker.service 服务文件
|
||
|
|
echo -e "${GREEN}开始创建 docker 服务文件...${NC}"
|
||
|
|
SERVICE_FILE="/usr/lib/systemd/system/docker.service"
|
||
|
|
# 使用 cat 重定向写入内容,避免使用 vi 交互操作
|
||
|
|
cat > "$SERVICE_FILE" << '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 --selinux-enabled=false --insecure-registry=127.0.0.1
|
||
|
|
ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=127.0.0.1:5000 --insecure-registry=docker.tanuki.vip
|
||
|
|
ExecReload=/bin/kill -s HUP $MAINPID
|
||
|
|
LimitNOFILE=infinity
|
||
|
|
LimitNPROC=infinity
|
||
|
|
LimitCORE=infinity
|
||
|
|
#TasksMax=infinity
|
||
|
|
TimeoutStartSec=0
|
||
|
|
Delegate=yes
|
||
|
|
KillMode=process
|
||
|
|
Restart=on-failure
|
||
|
|
StartLimitBurst=3
|
||
|
|
StartLimitInterval=60s
|
||
|
|
|
||
|
|
[Install]
|
||
|
|
WantedBy=multi-user.target
|
||
|
|
EOF
|
||
|
|
|
||
|
|
# 检查服务文件是否创建成功
|
||
|
|
if [ -f "$SERVICE_FILE" ]; then
|
||
|
|
echo -e "${GREEN}docker.service 服务文件创建成功${NC}"
|
||
|
|
else
|
||
|
|
echo -e "${RED}docker.service 服务文件创建失败${NC}"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
# 4. 重新加载 systemd 配置
|
||
|
|
echo -e "${GREEN}重新加载 systemd 配置...${NC}"
|
||
|
|
if systemctl daemon-reload; then
|
||
|
|
echo -e "${GREEN}systemd 配置重载成功${NC}"
|
||
|
|
else
|
||
|
|
echo -e "${RED}systemd 配置重载失败${NC}"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
# 5. 启动 docker 服务
|
||
|
|
echo -e "${GREEN}启动 docker 服务...${NC}"
|
||
|
|
if systemctl start docker; then
|
||
|
|
echo -e "${GREEN}docker 服务启动成功${NC}"
|
||
|
|
else
|
||
|
|
echo -e "${RED}docker 服务启动失败${NC}"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
# 6. 设置 docker 开机自启
|
||
|
|
echo -e "${GREEN}设置 docker 开机自启...${NC}"
|
||
|
|
if systemctl enable docker; then
|
||
|
|
echo -e "${GREEN}docker 开机自启设置成功${NC}"
|
||
|
|
else
|
||
|
|
echo -e "${RED}docker 开机自启设置失败${NC}"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
# 7. 查看 docker 服务状态
|
||
|
|
echo -e "${GREEN}查看 docker 服务状态...${NC}"
|
||
|
|
systemctl status docker
|
||
|
|
|
||
|
|
echo -e "\n${GREEN}所有操作执行完成!${NC}"
|