首页 > 其他分享 >脚本安装docker和docker-composed

脚本安装docker和docker-composed

时间:2023-11-12 17:55:59浏览次数:34  
标签:composed 脚本 ce echo yum 033 docker filename

该脚本支持centos7和centos8系统

#!/bin/bash
#一键安装docker-ce和docker-compose,本脚本适用于CentOS7和8

function os7_install_docker () {

rpm -qa | grep docker &> /etc/null
 if [ $? -ne 0 ]
 then
    echo "开始安装docker..."
    # step 1: 安装必要的一些系统工具
    yum install -y yum-utils device-mapper-persistent-data lvm2
    # Step 2: 添加软件源信息
    filename='/etc/yum.repos.d/docker-ce.repo'
    if [ ! -f ${filename} ]
    then
        echo "开始配置${filename} 文件"
        yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
        yum makecache fast
    else
        echo "${filename} 已存在"
    fi
    # Step 3: 安装Docker-CE   docker-compose
    yum -y install docker-ce  docker-compose
    # Step 4: 开启Docker服务
    systemctl enable docker
    systemctl start docker  

    echo -e "docker installed  [\033[32m OK \033[0m]"
    sleep 3

 else
    echo "docker 已存在"
 fi


}

#------------------------centos8安装docker------------------------
function os8_install_docker () {

rpm -qa | grep docker &> /etc/null
 if [ $? -ne 0 ]
 then
    echo "开始安装docker..."
    # step 1: 安装必要的一些系统工具
    yum install -y yum-utils device-mapper-persistent-data lvm2
    # Step 2: 添加软件源信息
    filename='/etc/yum.repos.d/docker-ce.repo'
    if [ ! -f ${filename} ]
    then
        echo "开始配置${filename} 文件"
        yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
        yum makecache fast
    else
        echo "${filename} 已存在"
    fi
    # Step 3: 安装Docker-CE
    yum --allowerasing -y install docker-ce
	# Step 4: 安装Docker-Compose服务
	curl -L https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
    # Step 5: 开启Docker服务
    systemctl enable docker
    systemctl start docker  

    echo -e "docker installed  [\033[32m OK \033[0m]"
    sleep 3

 else
    echo "docker 已存在"
 fi


}

#------------------------配置镜像加速服务------------------------
function setup_fast_mirros(){
echo "正在配置镜像加速服务....."
filename='/etc/docker/daemon.json'

if [ ! -f ${filename} ]
then

cat > ${filename} <<EOF
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com",
    "https://registry.docker-cn.com"
    ]
}
EOF
sleep 3

if [ -f ${filename} ]
then
    echo -e "文件配置成功  [\033[32m OK \033[0m]"
    systemctl daemon-reload
    systemctl restart docker 
    docker info
    which docker 
    sleep 3
else
    echo -e "文件配置失败[\033[31m FAILED  \033[0m]"
    exit
fi

else
    echo "${filename} 文件已存在,未做修改"
fi

}


#------------------------拉取常用镜像------------------------
function docker_pull_images(){

# 系统镜像
os_images=("centos:7.9.2009")
# web服务镜像
web_images=("nginx" "tomcat" "httpd" )
# 数据库镜像
database_images=("mysql:5.7.32" "mysql:8")
# 开发工具镜像
develop_images=("python" "busybox" )
# docker镜像
docker_image=("docker")

# 拉取镜像时只需调用对应的变量
download_images=(
# "${os_images[*]}" 
"${web_images[*]}" 
"${database_images[*]}" 
# "${develop_images[*]}"  
# "${docker_image[*]}"  
)

rpm -qa | grep docker-ce  &> /etc/null
if [ $? -eq 0 ]
then
    echo "拉取镜像开始..."
    sleep 1
    for image in ${download_images[*]}
    do
        echo "正在拉取镜像---${image}---"
        image_name=`echo ${image} | awk -F: '{print $1}'`
        docker images ${image} | grep -o ${image_name}  &> /etc/null

        if [ $? -ne 0 ]
        then
            docker pull ${image}
        else
            echo -e "${image}镜像已存在 [\033[32m OK \033[0m]"
        fi
        sleep 1
    done

    echo -e "镜像拉取完毕  [\033[32m OK \033[0m] 详情如下:"
    docker images

else
    echo -e "docker未安装,请安装docker后再拉取镜像    [\033[31m ERROR \033[0m]"
    exit
fi

}

#------------------------开启功能------------------------
os=`cat /etc/redhat-release | grep -o '[0-9]'|sed -n '1p'`
if [ $os == 7 ];then
	os7_install_docker
	setup_fast_mirros
elif [ $os == 8 ];then
    os8_install_docker
	setup_fast_mirros
else
    echo "此脚本不支持该系统安装!"
    exit
fi


# 1 安装docker
#install_docker

# 2 配置加速服务
#0setup_fast_mirros

# 3 拉取常用镜像
# docker_pull_images

centos7卸载docker

yum remove -y docker-ce docker-ce-cli containerd.io

centos8卸载docker

yum remove -y docker \
           docker-client \
           docker-client-latest \
           docker-common \
           docker-latest \
           docker-latest-logrotate \
           docker-logrotate \
           docker-selinux \
           docker-engine-selinux \
           docker-engine

 

标签:composed,脚本,ce,echo,yum,033,docker,filename
From: https://www.cnblogs.com/Mr-Ding/p/17827489.html

相关文章

  • 通过脚本学习PowerShell
    今天依旧通过PowerShellPlus的示例脚本来学习PowerShell。##=====================================================================##Title:Add-ADUserToGroup##Description:AddActiveDirectoryUsertoaGroup##Author:Idera##Date:9/22......
  • 3.2 IDAPro脚本IDC常用函数
    IDAPro内置的IDC脚本语言是一种灵活的、C语言风格的脚本语言,旨在帮助逆向工程师更轻松地进行反汇编和静态分析。IDC脚本语言支持变量、表达式、循环、分支、函数等C语言中的常见语法结构,并且还提供了许多特定于反汇编和静态分析的函数和操作符。由于其灵活性和可扩展性,许多逆向工......
  • Docker容器基础学习
    Docker的基本概念镜像(Image),容器(Container)和仓库(Repository)。镜像(Image):Docker镜像是一个只读的模板,可以用来创建Docker容器。它包含一个完整的操作系统环境,里面可以安装运行应用程序所需的所有内容,包括代码、运行时环境、系统工具、系统库和设置。镜像是通过联合文件系统(Unio......
  • 如何使用docker编排生产环境?
    在生产环境中使用Docker编排,可以通过DockerCompose或Kubernetes这两种主要的工具实现。DockerCompose:DockerCompose是一个用于定义和运行多容器Docker应用程序的工具。它使用YAML文件定义应用程序的服务、网络和卷,并通过一个命令运行整个应用程序。以下是使用Docker......
  • Docker容器报权限不足,如何配置权限?
    当Docker容器报告权限不足时,可能是由于容器内部的用户与主机操作系统的用户不匹配导致的。解决这个问题的一种常见方法是在容器内部设置适当的用户和权限。以下是几种配置容器权限的方法:在Dockerfile中配置用户和权限:你可以在Dockerfile中使用USER和RUN命令来配置容器内......
  • phpstorm中配置docker远程解释器?
    要在PhpStorm中配置Docker远程解释器,请按照以下步骤进行操作:1.首先,确保你已经在本地安装了Docker。你可以在终端执行docker--version来确认Docker是否已成功安装。在PhpStorm中,打开项目并进入"Settings/Preferences"菜单。在Windows或Linux上,菜单位于"File"->......
  • 安装本地化docker registry,使其他机器能够发布容器
    sudodockerpullregistry:latestdockerrun-d-p5000:5000--nameregistryregistry:latest http://localhost:5000/v2/_catalog, 检查运行成功此时在子机3号上访问:http://192.168.170.130:5000/v2/_catalog,  ......
  • 一个很漂亮的鼠标移动特效,Javascript 脚本,可惜复制到博客园配置适配效果不好
    一个很漂亮的鼠标移动特效,Javascript脚本,可惜复制到博客园配置适配效果不好,暂时记录一下<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>小白教程(json.cn)</title></head><body><script>varStats=function(){var......
  • 关于 deamon 与 systemctl ,systemd , ubuntu20 自启动脚本
    deamon是指的守护进程,但是什么是守护进程呢,从网上查了一下,就是在后台运行的程序就叫做守护进程。     接下来看一下关于systemd的自启动的配置文件。       疑问:1 unit与target到底又什么关系呢?2到底有多少个unit......
  • 部署 cri-dockerd
    下载cri-dockerdwgethttps://github.com/Mirantis/cri-dockerd/releases/download/v0.3.7/cri-dockerd-0.3.7.amd64.tgz解压cri-dockerdtarxfcri-dockerd-0.3.7.amd64.tgzcdcri-dockerd安装cri-dockerdinstall-oroot-groot-m0755cri-dockerd/usr/local/bin/c......