首页 > 其他分享 >一键自动化安装Docker

一键自动化安装Docker

时间:2024-08-14 22:26:59浏览次数:8  
标签:docker VERSION COMPOSE 一键 compose 自动化 DOWNLOAD Docker DOCKER

一、Docker背景

  • 在我们安装Docker时候需要配置网络类型flannel+etcd,在多台服务器中脚本可以大大解决安装配置速度
  • 我们这里的Docker版本以docker-20.10.24为例;根据个人需求可更换

二、一键自提:

链接:https://pan.baidu.com/s/1BT5_r0WUX5nhRRNLvSafiw?pwd=j6k5
提取码:j6k5

三、脚本

#!/bin/bash
# auther: chencheng

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

# DOCKER_VERSION=24.0.2
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://github.com/docker/compose/releases/download/v${DOCKER_COMPOSE_VERSION}/docker-compose-linux-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=/opt/Docker/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 "安装成功,欢迎使用二进制docker安装脚本,欢迎下次使用!"
    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 "卸载成功,欢迎再次使用二进制docker安装脚本哟~"
  tput setaf 7
}


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

# 向入口函数传参
main $1 

标签:docker,VERSION,COMPOSE,一键,compose,自动化,DOWNLOAD,Docker,DOCKER
From: https://www.cnblogs.com/9Dusk/p/18359878

相关文章

  • 四款录屏大师,一键搞定!新手也能快速上手?
    现在随着新媒体的记录设备的不断更新迭代之下,我们记录生活的工具也愈来愈强大,不过如果需要记录电脑中的重要信息时,我们就需要借助录屏工具来实现了,所以今天整理了四款实用靠谱的录屏大师,有需要的朋友可以试试:第一款:foxit录屏工具地址(粘贴到浏览器打开):www.foxitsoftware.cn/RE......
  • Superset Docker-Compose部署
    bi系统是一类旨在帮助企业和组织分析、可视化和理解其业务数据的软件工具之前了解过商业的阿里quickbi,腾讯bi,开源的话用superset,据了解新老公司不少会调研supersethttps://github.com/apache/superset/releases/tag/4.0.2这里我使用了最新的包,经过测试发现一年前的镜像更新到......
  • 2024版,一键安装永久激活!
    2024版,一键安装永久激活!https://mp.weixin.qq.com/s?__biz=MzkxMzEyNTA2Nw==&mid=2247504674&idx=1&sn=6402cfd91b92f85e28a282fe10216aea&chksm=c100e886f67761904f3eab4607504da67c7342d29cb6ae4374a9f9b4b459d237f1bee0095510&mpshare=1&scene=23&sr......
  • 在虚拟机CentOS中安装docker
    公众号本文地址:在虚拟机CentOS中安装Docker1、关闭防火墙docker需要用到网络,所以需要关闭防火墙。进入管理员模式获得权限后进行关闭。su关闭防火墙:systemctldisablefirewalldsystemctlstopfirewalld2、禁用selinux(1)进入配置文件vim/etc/selinux/configvim/etc/......
  • 部署--项目打成 jar 包后部署为Docker镜像
     在Java项目打成jar包后,可以通过Docker容器进行部署。 1.打包Java项目为jar文件mvncleanpackage完成后会在本地目录target下生成jar文件。如: 2.文件上传将jar包上传到制定的目录下。(如:我的是 control包放在目录/home/dockerdata/docke......
  • docker-compose部署tdengine 3.3.0.0集群
    说明:官方文档提供dockerswarm部署多台服务器集群方式,不适用于公司目前部署方式,故研究多台服务器docker部署集群目前只是部署,还未生产使用,仅供参考一、环境:服务器3台,系统为Ubuntu20.04.4LTSemscluster0110.1.1.103emscluster0210.1.1.104emscluster0310.1.1.105......
  • Delphi编程艺术:注释技巧与文档自动化
    标题:Delphi编程艺术:注释技巧与文档自动化引言在Delphi开发中,注释和文档生成是编写可维护代码的基础。Delphi支持多种注释方式,同时提供了工具和方法来自动化文档的生成。本文将详细介绍Delphi中的注释类型,以及如何使用Delphi生成Word文档等自动化文档的技巧。Delphi中的注......
  • docker-swarm test
    DockerService(服务)是用于定义和管理单个容器服务的概念。 DockerCompose,它是用来进行一个完整的应用程序相互依赖的多个容器的编排的,但是缺点是不能在分布式多机器上使用; Dockerswarm,它构建了docker集群,并且可以通过dockerservice在不同集群节点上运行容器服务,但是缺点......
  • [Python] 通过pymongo连接docker中并开启了副本集的mongodb数据库
    需要指定directConnection=true&authSource=atp-test参数,,否则会报连接副本集超时。在PyMongo中,directConnection参数可以决定客户端是否直接连接到MongoDB服务器,而不是自动发现所有的副本集成员。当directConnection设置为true时,客户端将只连接到MongoDB连接字符......
  • 【Python-办公自动化】1秒比较出2张表格之间的不同并标黄加粗
    欢迎来到"花花ShowPython",一名热爱编程和分享知识的技术博主。在这里,我将与您一同探索Python的奥秘,分享编程技巧、项目实践和学习心得。无论您是编程新手还是资深开发者,都能在这里找到有价值的信息和灵感。自我介绍:我热衷于将复杂的技术概念以简单易懂的方式呈现给大家,......