当前位置: 首页 > news >正文

使用shell脚本一键部署docker及docker-compose环境

准备安装包:

安装包邮箱留言获取
ahui6-docker-compose-binary-install.tar.gz

脚步内容:

#!/bin/bash
#auther: ahui6
#博客地址: https://www.cnblogs.com/ahui6#加载操作系统的变量,主要是ID变量。
. /etc/os-release#定义docker版本
DOCKER_VERSION=20.10.24
DOCKER_COMPOSE_VERSION=2.23.0
FILENAME=docker-${DOCKER_VERSION}.tgz
DOCKER_COMPOSE_FILE=docker-compose-v${DOCKER_COMPOSE_VERSION}
URL=https://download.docker.com/linux/static/stable/x86_64
DOCKER_COMPOSE_URL=https://hub.nuaa.cf/docker/compose/releases/download/v${DOCKER_COMPOSE_VERSION}/docker-compose-linux-x86_64
DOWNLOAD=./download
BASE_DIR=/ahui6/softwares
OS_VERSION=$ID#判断是否下载了docker-compose
function prepare(){#判断是否下载docker-compose文件if [ ! -f ${DOWNLOAD}/${DOCKER_COMPOSE_FILE} ]; thenwget -T 3  -t 2 ${DOCKER_COMPOSE_URL} -O 	${DOWNLOAD}/${DOCKER_COMPOSE_FILE}fiif [ $? != 0 ];thenrm -f ${DOWNLOAD}/${DOCKER_COMPOSE_FILE}echo "不好意思,由于网络波动原因,无法下载${DOCKER_COMPOSE_URL}软件包,程序已退出!请稍后再试......"exit 100fi#给脚本添加执行权限chmod +x ${DOWNLOAD}/${DOCKER_COMPOSE_FILE}
}#定义安装函数
function InstallDocker(){if [ $OS_VERSION == "centos" ];then[ -f /usr/bin/wget ] || yum -y install wgetrpm -qa |grep bash-completion || yum -y install bash-completion
fiif [ $OS_VERSION == "ubuntu" ];then[ -f /usr/bin/wget ] || apt -y install wget
fi#判断文件是否存在,若不存在则下载软件包
if [ ! -f ${DOWNLOAD}/${FILENAME} ]; thenwget ${URL}/${FILENAME} -O ${DOWNLOAD}/${FILENAME}
fi#判断安装路径是否存在
if [ ! -d ${BASE_DIR} ]; theninstall -d ${BASE_DIR}
fi#解压软件包到安装目录
tar xf ${DOWNLOAD}/${FILENAME} -C ${BASE_DIR}#安装docker-compose
prepare
cp $DOWNLOAD/${DOCKER_COMPOSE_FILE} ${BASE_DIR}/docker/docker-compose#创建软连接
ln -svf ${BASE_DIR}/docker/* /usr/bin/#自动补全功能
cp $DOWNLOAD/docker /usr/share/bash-completion/completions/docker
source /usr/share/bash-completion/completions/docker#配置镜像加速
install -d /etc/docker
cp $DOWNLOAD/daemon.json /etc/docker/daemon.json#开机自启动脚本
cp download/docker.service /usr/lib/systemd/system/docker.service
systemctl daemon-reload
systemctl enable --now docker
docker version
docker-compose version
tput setaf 3
echo "安装成功,欢迎使用阿辉二进制docker安装脚本,欢迎下次使用!---> https://www.cnblogs.com/ahui6"
tput setaf 2
}#卸载docker
function UninstallDocker(){#停止docker服务systemctl disable --now docker#卸载启动脚本rm -f /usr/lib/systemd/system/docker.service#清空程序目录rm -rf ${BASE_DIR}/docker#清空数据目录rm -rf /var/lib/{docker,containerd} #清除符号链接rm -f /usr/bin/{containerd,containerd-shim,containerd-shim-runc-v2,ctr,docker,dockerd,docker-init,docker-proxy,runc}#使得终端变粉色tput setaf 5echo "卸载成功,欢迎再次使用阿辉二进制docker安装脚本 ----> https://www.cnblogs.com/ahui6"tput setaf 7
}#程序的入口函数
function main(){# 判断传递的参数case $1 in"install")InstallDocker;;"remove")UninstallDocker;;*)echo "Invalid parameter, Usage: $0 install|remove";;esac
}# 向入口函数传参
main $1
http://www.hskmm.com/?act=detail&tid=14809

相关文章:

  • paddleOCR 图片识别
  • 使用命令行powershell修改系统变量
  • 数据全生命周期安全建设方案推荐:双轮驱动架构的实践与创新
  • 赋能智慧水利:国标GB28181平台EasyGBS在农业水文监控中的落地实践
  • VS依赖项显示黄色感叹号、红色叉叉,NU1101找不到包异常情况处理方案
  • 噬菌体展示技术原理深度解析:从基因型-表型偶联到亲和筛选的核心逻辑
  • AT_arc197_e [ARC197E] Four Square Tiles
  • 不限速网盘盘点,五款免费网盘综合对比
  • 日记2
  • RTK精度和时间 - MKT
  • LeetCode-100.相同的树
  • ubuntu安装minio并切换数据存储目录
  • 学习笔记508— 威联通安装使用Zerotier One
  • Java 语法糖大揭秘:让代码更甜更高效的幕后功臣 - 教程
  • Linux命令
  • 树上莫队
  • 比余额宝收益高的低风险短期理财工具-银行同业存单
  • 陇剑杯2025 决赛-ShellDecoder
  • Springcloud gateway笔记
  • AT_arc122_e [ARC122E] Increasing LCMs
  • C++ 锁
  • 飞书对程序员下手了,0 代码生成各类系统!!(附保姆级项目实战教程)
  • Adaptix C2:跨平台渗透测试与对抗仿真框架
  • 国标GB28181软件EasyGBS网页直播平台在邮政快递场景的落地与应用
  • sql统计一个字段各个值各有多个个的方法
  • WBS、甘特图、关键路径……项目计划的五大核心概念一文全懂
  • 智启新程:哲讯科技引领SAP ERP实施新范式
  • 移动端性能监控探索:鸿蒙 NEXT 探针架构与技术实现
  • 哲讯科技:以数智之力,铸就企业SAP ERP实施新典范
  • PR曲线绘制