Files
geg-gas-doc/宝策/docker_install.sh

96 lines
2.7 KiB
Bash
Raw Permalink Normal View History

2025-10-10 09:12:33 +08:00
#!/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}"