Linux一键安装Docker和Docker Compose

server/2025/1/13 17:13:33/

Centos docker安装脚本

#!/bin/bash# docker_manager.sh
# 用于管理 Docker 和 Docker Compose 的交互脚本# =======================
# 配置变量
# =======================# Docker 仓库地址
DOCKER_REPO="https://download.docker.com/linux/centos/docker-ce.repo"# =======================
# 函数定义
# =======================# 安装 Docker 和 Docker Compose
install_docker() {echo "正在安装 Docker..."# 移除旧版本sudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine# 安装必要的软件包sudo yum install -y yum-utils device-mapper-persistent-data lvm2# 添加 Docker 仓库sudo yum-config-manager --add-repo $DOCKER_REPO# 安装 Dockersudo yum install -y docker-ce docker-ce-cli containerd.io# 启动并设置开机自启sudo systemctl start dockersudo systemctl enable dockerecho "Docker 安装完成。"# 安装 Docker Composeecho "正在安装 Docker Compose..."# 获取最新版本号DOCKER_COMPOSE_LATEST=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d '"' -f 4)if [ -z "$DOCKER_COMPOSE_LATEST" ]; thenecho "无法获取 Docker Compose 最新版本号。请手动检查 https://github.com/docker/compose/releases"returnfi# 下载 Docker Compose 二进制文件sudo curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_LATEST}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose# 授予可执行权限sudo chmod +x /usr/local/bin/docker-compose# 创建软链接(可选)sudo ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose# 验证安装if command -v docker-compose &> /dev/null; thenecho "Docker Compose 安装完成,版本:$(docker-compose --version)"elseecho "Docker Compose 安装失败。"fi
}# 启动 Docker 服务
start_docker() {echo "正在启动 Docker 服务..."sudo systemctl start dockersudo systemctl enable dockerecho "Docker 服务已启动。"
}# 重启 Docker 服务
restart_docker() {echo "正在重启 Docker 服务..."sudo systemctl restart dockerif [ $? -eq 0 ]; thenecho "Docker 服务已成功重启。"elseecho "Docker 服务重启失败,请检查日志。"fi
}# 停止 Docker 服务
stop_docker() {echo "正在停止 Docker 服务..."sudo systemctl stop dockerif [ $? -eq 0 ]; thenecho "Docker 服务已停止。"elseecho "Docker 服务停止失败,请检查日志。"fi
}# 卸载 Docker 和 Docker Compose
uninstall_docker() {echo "正在卸载 Docker..."# 停止 Docker 服务sudo systemctl stop docker# 卸载 Dockersudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine# 删除所有镜像、容器、卷和网络sudo rm -rf /var/lib/dockerecho "Docker 已卸载。"# 卸载 Docker Composeecho "正在卸载 Docker Compose..."sudo rm -f /usr/local/bin/docker-composesudo rm -f /usr/bin/docker-composeecho "Docker Compose 已卸载。"
}# 显示菜单
show_menu() {echo "=============================="echo "      Docker 管理脚本         "echo "=============================="echo "1. 安装 Docker(包括 Docker Compose)"echo "2. 启动 Docker 服务"echo "3. 重启 Docker 服务"echo "4. 停止 Docker 服务"echo "5. 卸载 Docker(包括 Docker Compose)"echo "6. 退出"echo "=============================="
}# =======================
# 主程序
# =======================while true; doshow_menuread -p "请输入你的选择 [1-6]:" choicecase $choice in1)install_docker;;2)start_docker;;3)restart_docker;;4)stop_docker;;5)uninstall_docker;;6)echo "退出脚本。"exit 0;;*)echo "无效的选择,请重新输入。";;esacecho ""
done

Ubuntu docker安装脚本

#!/bin/bash# docker_manager.sh
# 用于管理 Docker 和 Docker Compose 的交互脚本(适用于 Ubuntu)# =======================
# 配置变量
# =======================# Docker 仓库地址
DOCKER_REPO="https://download.docker.com/linux/ubuntu"# =======================
# 函数定义
# =======================# 安装 Docker 和 Docker Compose
install_docker() {echo "正在安装 Docker..."# 移除旧版本sudo apt-get remove -y docker docker-engine docker.io containerd runc# 更新包索引sudo apt-get update# 安装必要的软件包sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release# 添加 Docker 的官方 GPG 密钥curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg# 设置稳定的 Docker 仓库echo \"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] $DOCKER_REPO $(lsb_release -cs) stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null# 更新包索引sudo apt-get update# 安装 Docker Engine、Docker CLI 和 containerdsudo apt-get install -y docker-ce docker-ce-cli containerd.io# 启动并设置开机自启sudo systemctl start dockersudo systemctl enable dockerecho "Docker 安装完成。"# 安装 Docker Composeecho "正在安装 Docker Compose..."# 获取最新版本号DOCKER_COMPOSE_LATEST=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d '"' -f 4)if [ -z "$DOCKER_COMPOSE_LATEST" ]; thenecho "无法获取 Docker Compose 最新版本号。请手动检查 https://github.com/docker/compose/releases"returnfi# 下载 Docker Compose 二进制文件sudo curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_LATEST}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose# 授予可执行权限sudo chmod +x /usr/local/bin/docker-compose# 创建软链接(可选)sudo ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose# 验证安装if command -v docker-compose &> /dev/null; thenecho "Docker Compose 安装完成,版本:$(docker-compose --version)"elseecho "Docker Compose 安装失败。"fi
}# 启动 Docker 服务
start_docker() {echo "正在启动 Docker 服务..."sudo systemctl start dockersudo systemctl enable dockerecho "Docker 服务已启动。"
}# 重启 Docker 服务
restart_docker() {echo "正在重启 Docker 服务..."sudo systemctl restart dockerif [ $? -eq 0 ]; thenecho "Docker 服务已成功重启。"elseecho "Docker 服务重启失败,请检查日志。"fi
}# 停止 Docker 服务
stop_docker() {echo "正在停止 Docker 服务..."sudo systemctl stop dockerif [ $? -eq 0 ]; thenecho "Docker 服务已停止。"elseecho "Docker 服务停止失败,请检查日志。"fi
}# 卸载 Docker 和 Docker Compose
uninstall_docker() {echo "正在卸载 Docker..."# 停止 Docker 服务sudo systemctl stop docker# 卸载 Dockersudo apt-get purge -y docker-ce docker-ce-cli containerd.io# 删除所有镜像、容器、卷和网络sudo rm -rf /var/lib/dockersudo rm -rf /var/lib/containerdecho "Docker 已卸载。"# 卸载 Docker Composeecho "正在卸载 Docker Compose..."sudo rm -f /usr/local/bin/docker-composesudo rm -f /usr/bin/docker-composeecho "Docker Compose 已卸载。"
}# 显示菜单
show_menu() {echo "=============================="echo "      Docker 管理脚本         "echo "=============================="echo "1. 安装 Docker(包括 Docker Compose)"echo "2. 启动 Docker 服务"echo "3. 重启 Docker 服务"echo "4. 停止 Docker 服务"echo "5. 卸载 Docker(包括 Docker Compose)"echo "6. 退出"echo "=============================="
}# =======================
# 主程序
# =======================while true; doshow_menuread -p "请输入你的选择 [1-6]:" choicecase $choice in1)install_docker;;2)start_docker;;3)restart_docker;;4)stop_docker;;5)uninstall_docker;;6)echo "退出脚本。"exit 0;;*)echo "无效的选择,请重新输入。";;esacecho ""
done


http://www.ppmy.cn/server/158043.html

相关文章

Python创建GitHub标签的Django管理命令

在软件开发过程中,版本控制是非常重要的一环。GitHub作为最流行的代码托管平台之一,提供了强大的版本控制功能。其中,标签(Tag)是一个非常有用的功能,它可以帮助我们标记重要的代码版本。本文将介绍如何使用Python创建一个Django管理命令,用于自动化创建GitHub标签。 © iv…

AI大模型-提示工程学习笔记4

卷首语:我所知的是我自己非常无知,所以我要不断学习。 写给AI入行比较晚的小白们(比如我自己)看的,大神可以直接路过无视了。 不同主题提示词可以完成不同基本任务,常见的提示主题有: 文本概…

Mysql--运维篇--主从复制和集群(主从复制I/O线程,SQL线程,二进制日志,中继日志,集群NDB)

一、主从复制 MySQL的主从复制(Master-Slave Replication)是一种数据冗余和高可用性的解决方案,它通过将一个或多个从服务器(Slave)与主服务器(Master)同步来实现。主从复制的基本原理是&#…

【25考研】川大计算机复试情况,重点是啥?怎么准备?

24年进入复试的同学中,有10位同学的复试成绩为0分。具体是个人原因还是校方原因,还尚不明确。但是C哥提醒,一定要认真复习!复试完后不要跟任何人讨论有关复试的题目及细节! 一、复试内容 四川大学复试内容较多&#xf…

Linux运维中常用的命令总结

文件和目录管理命令 ls - 列出目录内容 ls: 列出当前目录的内容 ls -l: 以长格式列出目录内容 ls -a: 显示所有文件,包括隐藏文件 pwd - 显示当前工作目录 pwd: 输出当前工作目录的绝对路径 cd - 切换目录 cd /path/to/directory: 切换到指定目录 cd ..: 返…

Python AI教程之十八:监督学习之决策树(9) 决策树模型中的过度拟合

决策树模型中的过度拟合 在机器学习中,决策树是一种常用的预测工具。然而,使用这些模型时遇到的一个常见问题是过度拟合。在这里,我们探讨决策树中的过度拟合以及应对这一挑战的方法。 决策树为什么会出现过度拟合? 决策树模型中的过度拟合是指决策树变得过于复杂,并捕获训…

如何使用高性能内存数据库Redis

一、详细介绍 1.1、Redis概述 Redis(Remote Dictionary Server)是一个开源的、内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。Redis支持多种类型的数据结构,如字符串(strings)、哈希&am…

django基于 Python 的考研学习系统的设计与实现

以下是对Django基于Python的考研学习系统的设计与实现: 一、系统概述 Django基于Python的考研学习系统是一个为考研学子提供一站式学习辅助的平台。它整合了丰富的学习资源、学习计划制定、学习进度跟踪以及交流互动等功能,旨在满足考生在备考过程中的…