From e84d0d08cc29cc324a1bed6cab3446f39541c07d Mon Sep 17 00:00:00 2001 From: xzx3344521 Date: Sat, 18 Oct 2025 18:20:35 +0800 Subject: [PATCH] Create dock.sh --- dock.sh | 135 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 dock.sh diff --git a/dock.sh b/dock.sh new file mode 100644 index 0000000..17de0a5 --- /dev/null +++ b/dock.sh @@ -0,0 +1,135 @@ +#!/bin/bash + +# 确保脚本以root权限运行 +check_root() { + if [ "$(id -u)" -ne 0 ]; then + echo "请使用root权限运行此脚本" >&2 + exit 1 + fi +} + +# 安装Docker +install_docker() { + echo "===== 开始安装Docker =====" + + # 更新系统并安装必要的依赖包 + echo "更新系统并安装依赖包..." + apt update && apt install -y ca-certificates curl gnupg lsb-release + + # 创建Docker密钥存储目录 + echo "准备Docker密钥..." + mkdir -p /etc/apt/keyrings + + # 下载并安装Docker GPG密钥 + curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg + + # 添加Docker软件源(使用阿里云镜像) + echo "配置Docker软件源..." + echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null + + # 安装Docker引擎 + echo "安装Docker引擎..." + apt update + apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin + + # 配置Docker镜像加速器 + echo "配置Docker镜像加速器..." + mkdir -p /etc/docker + tee /etc/docker/daemon.json <<-'EOF' +{ + "registry-mirrors": [ + "https://docker.m.daocloud.io" + ] +} +EOF + + # 重启Docker服务使配置生效 + echo "重启Docker服务..." + systemctl daemon-reload + systemctl restart docker + systemctl enable docker # 设置开机自启 + + # 验证安装结果 + if docker --version >/dev/null 2>&1; then + echo "===== Docker安装配置完成! =====" + docker --version + else + echo "===== Docker安装失败,请检查错误信息。 =====" >&2 + exit 1 + fi +} + +# 卸载Docker +uninstall_docker() { + echo "===== 开始卸载Docker =====" + + # 检查Docker是否安装 + if ! command -v docker &> /dev/null; then + echo "Docker未安装,无需卸载" + exit 0 + fi + + # 停止Docker服务 + echo "停止Docker服务..." + systemctl stop docker + systemctl disable docker + + # 卸载Docker包 + echo "卸载Docker组件..." + apt purge -y docker-ce docker-ce-cli containerd.io docker-compose-plugin + + # 删除Docker相关目录 + echo "清理Docker配置和数据目录..." + rm -rf /etc/docker + rm -rf /etc/apt/keyrings/docker.gpg + rm -rf /etc/apt/sources.list.d/docker.list + rm -rf /var/lib/docker + rm -rf /var/lib/containerd + + # 清理无用依赖 + echo "清理系统残留包..." + apt autoremove -y + apt autoclean + + # 验证卸载结果 + if ! command -v docker &> /dev/null; then + echo "===== Docker卸载完成! =====" + echo "注意:Docker容器和镜像数据已删除" + else + echo "===== Docker卸载失败,请检查错误信息。 =====" >&2 + exit 1 + fi +} + +# 显示帮助信息 +show_help() { + echo "Docker安装与卸载管理脚本" + echo "用法: $0 [选项]" + echo "选项:" + echo " -i 安装Docker(默认选项)" + echo " -u 卸载Docker" + echo " -h 显示帮助信息" +} + +# 主程序 +check_root + +case "$1" in + -install) + install_docker + ;; + -u) + uninstall_docker + ;; + -h) + show_help + ;; + "") + install_docker + ;; + *) + echo "未知选项: $1" >&2 + show_help >&2 + exit 1 + ;; +esac