首页 > 其他分享 >一键部署Docker脚本

一键部署Docker脚本

时间:2024-07-01 19:19:37浏览次数:1  
标签:脚本 docker COMPOSE 一键 compose usr DOWNLOAD Docker DOCKER

bash docker_install.sh

#!/bin/bash
# auther: maqinghang
# blog: https://www.cnblogs.com/maqinghang


# 加载操作系统的变量,主要是ID变量。
. /etc/os-release

DOCKER_VERSION=20.10.24 #指定Docker的版本
DOCKER_COMPOSE_VERSION=2.23.0 #指定docker-conpose的版本
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://github.com/docker/compose/releases/download/v${DOCKER_COMPOSE_VERSION}/docker-compose-linux-x86_64
DOWNLOAD=./download
BASE_DIR=/maqinghang/softwares
OS_VERSION=$ID




# 判断是否下载了docker-compose
function prepare(){
   # 判断是否下载docker-compose文件
   if [ ! -f ${DOWNLOAD}/${DOCKER_COMPOSE_FILE} ]; then
      wget -T 3  -t 2 ${DOCKER_COMPOSE_URL} -O ${DOWNLOAD}/${DOCKER_COMPOSE_FILE}
   fi
   
   if [ $? != 0 ];then
     rm -f ${DOWNLOAD}/${DOCKER_COMPOSE_FILE}
     echo "不好意思,由于网络波动原因,无法下载${DOCKER_COMPOSE_URL}软件包,程序已退出!请稍后再试......"
     exit 100
   fi

   # 给脚本添加执行权限
   chmod +x ${DOWNLOAD}/${DOCKER_COMPOSE_FILE}
}


# 定义安装函数
function InstallDocker(){

        if [ $OS_VERSION == "centos" ];then
          [ -f /usr/bin/wget ] || yum -y install wget
          rpm -qa |grep bash-completion || yum -y install bash-completion
        fi

        if [ $OS_VERSION == "ubuntu" ];then
          [ -f /usr/bin/wget ] || apt -y install wget
        fi

    # 判断文件是否存在,若不存在则下载软件包
    if [ ! -f ${DOWNLOAD}/${FILENAME} ]; then
       wget ${URL}/${FILENAME} -O ${DOWNLOAD}/${FILENAME}
    fi
    
    # 判断安装路径是否存在
    if [ ! -d ${BASE_DIR} ]; then
      install -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 "安装成功,欢迎使用maqinghang二进制docker安装脚本,欢迎下次使用!https://www.cnblogs.com/maqinghang"
    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 5
  echo "卸载成功,欢迎再次使用maqinghang二进制docker安装脚本"
  tput setaf 7
}


# 程序的入口函数
function main(){
   # 判断传递的参数
   case $1 in
     install|i)
      InstallDocker
      ;;
      remove|r)
      UninstallDocker
      ;;
     *)
       echo "Invalid parameter, Usage: $0 install|remove"
       ;;
   esac
}

# 向入口函数传参
main $1 

标签:脚本,docker,COMPOSE,一键,compose,usr,DOWNLOAD,Docker,DOCKER
From: https://www.cnblogs.com/maqinghang/p/18278665

相关文章

  • Linux容器篇-Docker镜像的使用
    文章目录前言一、列出镜像列表二、获取一个新镜像三、查找镜像四、拉取镜像五、删除镜像六、创建镜像1、更新镜像2、构建镜像七、设置镜像标签总结前言当运行容器时,使用的镜像如果在本地中不存在,docker就会自动从docker镜像仓库中下载,默认是从DockerHub公共......
  • Nmap 脚本使用
    Nmap脚本使用使用Nmap脚本是扩展Nmap功能的一种高效方式,允许用户执行从简单的服务检测到复杂的漏洞利用的各种任务。通过指定--script选项,并结合相应的脚本名称或类型,用户可以轻松地利用Nmap的强大脚本库。Nmap脚本类型概述以下是Nmap脚本类型的简要概述,每种类型都......
  • 【Docker】Docker安全与最佳实践:保护你的容器化应用程序
    Docker安全与最佳实践:保护你的容器化应用程序一、保持Docker更新*1\.使用容器编排工具2.蓝绿部署3.滚动更新4.就地更新5.监控和回滚二、最小权限原则三、网络隔离四、其他安全措施前言Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到......
  • docker
    dockerDocker是一个开源项目,诞生于2013年初,最初是dotCloud公司内部的一个业余项目。它基于Google公司推出的Go语言实现。加了Linux基金会,遵从了Apache2.0协议,项目代码在上进行维护。容器化技术,区分于虚拟机,又类虚拟机,兼具虚拟机隔离的优点,又有速度快的优点容器......
  • wifi自动连接脚本
    #!/bin/sh##Startthewifi....##Debianifupdownneedsthe/run/wifilockdirectorymkdir-p/run/wifi#自定义变量interface_dev="wlan0"wifi_name="xxxx"wifi_password="xxxx"#执行wpa_cli前先调用wpa_supplicant不然不成功,不知道为何wpa_supplicant-iw......
  • Docker 镜像安装
    ​​​前言Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。在安装Docker时,我们经常需要用到镜像安装,为此我整理了一下如何通过镜像源来安装Docker的......
  • 一键进阶ComfyUI!懂AI的设计师现在都在用的节点式Stable Diffusion!内附安装包
    大家好,我是设计师阿威目前使用StableDiffusion进行创作的工具主要有两个:WebUI和ComfyUI。而更晚出现的ComfyUI凭借超高的可定制性和复现性迅速火遍全球。有设计师表示SD发布了XL1.0后,ComfyUI用它优秀的底层逻辑率先打击了臃肿不稳定的WebUI1.6,成为更适合“体验”XL的......
  • 【AI绘画SD】ComfyUI-神级插件-一键高清放大,不改变原图,只做高清处理!
    哈喽大家好,我是设计师阿威以前介绍的一些AI绘画放大插件都是相当于等比例重绘,这就导致了有些细节部分可能会改变,今天给大家分享一个ComfyUI的插件—ComfyUI-SUPIR,可以不改变原图,只做高清处理。下图是作者的案例效果1、下载插件在Github下载插件:https://github.com/kijai......
  • Batch脚本中的用户交互:CHOICE命令的妙用
    Batch脚本中的用户交互:CHOICE命令的妙用在自动化脚本的世界中,Batch文件以其简洁和高效而著称,但有时我们也需要与用户进行交互以获取输入或提供选择。这就是CHOICE命令大放异彩的地方。本文将深入探讨如何在Batch文件中使用CHOICE命令,通过实际代码示例,展示如何利用这一命令......
  • 新版一键AI视频图片换脸神器来了!目前最强的AI视频换脸工具Swapface!
    之前发过一款AI换脸工具,可惜部署门槛太高,有没有换头换脸的AI工具?今天就给你们安排到家!SwapfaceAI工具一键开箱包‍(一键整合包添加下方领取~)它使用先进的人工智能和计算机视觉技术,可以在几秒内为你的视频生成逼真的面部替换效果。无需任何复杂的参数设置,你只需要上......