Centos通过Shell脚本快速安装docker软件

本文提供了一个在CentOS系统中安装Docker的详细Shell脚本,包括检查安装、选择安装源、版本选择、网络代理配置和存储驱动设置等内容,指导用户完成Docker的安装和初步配置。
摘要由CSDN通过智能技术生成

by:垃圾程序员

  提供一个Centos中安装Docker软件的Shell脚本模板,大家可以自取改造:

#!/bin/bash

# 检查是否已经安装Docker
if command -v docker &> /dev/null; then
    echo "检测到您已经安装了Docker。"
    read -p "是否要卸载并重新安装Docker?[y/n]: " reinstall_choice
    if [[ $reinstall_choice == "n" || $reinstall_choice == "N" ]]; then
        echo "取消重新安装Docker。"
        exit 0
    fi
    echo "卸载Docker..."
    sudo yum -y remove docker-ce docker-ce-cli containerd.io
    sudo rm -rf /var/lib/docker
fi

echo "欢迎安装Docker!请选择您希望使用的安装源:"
echo "1. 官方源(官方源是Docker官方提供的源,可信度高,推荐使用。)"
echo "2. 阿里云源(阿里云源是在国内比较稳定和快速的镜像源,推荐使用。)"
echo "3. 清华源(清华源也是国内常用的镜像源,提供了稳定可靠的服务,推荐使用。)"

read -p "请输入选项号码: " source_choice

case $source_choice in
    1)
        echo "您选择使用官方源进行安装"
        repo_url="http://download.docker.com/linux/centos/docker-ce.repo"
        ;;
    2)
        echo "您选择使用阿里云源进行安装"
        repo_url="https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo"
        ;;
    3)
        echo "您选择使用清华源进行安装"
        repo_url="https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo"
        ;;
    *)
        echo "无效的选项"
        exit 1
        ;;
esac

echo "请选择Docker版本类型:"
echo "1. 最新稳定版(如果您对稳定性有较高要求,并且希望使用经过全面测试和验证的版本,请选择最新稳定版。)"
echo "2. 最新版(包括预发布版和稳定版)如果您想要尝试最新功能和更新,无论是预发布版还是稳定版,请选择最新版。"
echo "3. 指定版本(如果您有特定的Docker版本需求,请选择指定版本,并确保输入正确的版本号。)"

read -p "请输入选项号码: " version_choice

case $version_choice in
    1)
        echo "您选择安装最新稳定版Docker"
        package_name="docker-ce docker-ce-cli containerd.io"
        ;;
    2)
        echo "您选择安装最新版Docker(包括预发布版和稳定版)"
        package_name="docker-ce docker-ce-cli containerd.io"
        ;;
    3)
        read -p "请输入您想要安装的Docker版本号: " specified_version

          # 使用正则表达式验证版本号格式
	  if [[ ! $specified_version =~ ^([0-9]+)\.([0-9]+)\.([0-9]+)(-[a-zA-Z0-9_]+)?$ ]]; then
    		echo "无效的版本号格式!请重新输入。"
    		exit 1
	  fi

        echo "您选择安装指定版本Docker: $specified_version"
        read -p "请再次确认是否安装指定版本Docker: $specified_version?[y/n]: " confirm_choice
        if [[ $confirm_choice == "y" || $confirm_choice == "Y" ]]; then
            package_name="docker-ce-$specified_version docker-ce-cli-$specified_version containerd.io"
        else
            echo "取消安装指定版本Docker。"
            exit 0
        fi
        ;;
    *)
        echo "无效的选项"
        exit 1
        ;;
esac

# 添加安装源
sudo yum-config-manager --add-repo $repo_url

# 检查源是否成功添加
if [ $? -eq 0 ]; then
    echo "安装源添加成功!"
else
    echo "安装源添加失败,请检查您输入的URL地址和网络连接。"
    exit 1
fi

# 安装Docker
sudo yum -y install $package_name

# 检查安装是否成功
if [ $? -eq 0 ]; then
    echo "Docker安装成功!"
else
    echo "Docker安装失败,请检查您输入的版本号和包名称。"
    exit 1
fi

# 启动Docker服务
sudo systemctl start docker

# 检查Docker服务是否启动成功
if [ $? -eq 0 ]; then
    echo "Docker服务已成功启动!"
else
    echo "Docker服务启动失败,请检查相关问题。"
    exit 1
fi

# 设置Docker开机启动
sudo systemctl enable docker

# 检查是否成功设置Docker开机启动
if [ $? -eq 0 ]; then
    echo "已成功设置Docker开机启动!"
else
    echo "设置Docker开机启动失败,请检查相关问题。"
    exit 1
fi

echo "Docker安装过程已完成,请享受它吧!"

echo ""
# 配置网络代理
read -p "是否需要配置网络代理?[y/n]: " proxy_choice
if [[ $proxy_choice == "y" || $proxy_choice == "Y" ]]; then
    read -p "请输入代理服务器地址(例如:http://proxy.example.com:8080): " proxy_server
    echo "设置Docker网络代理..."
    mkdir -p /etc/systemd/system/docker.service.d
    echo "[Service]" | sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf
    echo "Environment=\"HTTP_PROXY=$proxy_server\" \"HTTPS_PROXY=$proxy_server\"" | sudo tee -a /etc/systemd/system/docker.service.d/http-proxy.conf
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    echo "Docker网络代理已配置。"
fi

echo ""
# 配置存储驱动类型
read -p "是否需要配置存储驱动类型?[y/n]: " storage_choice
if [[ $storage_choice == "y" || $storage_choice == "Y" ]]; then
    echo "请选择存储驱动类型:"
    echo "1. overlay2 (默认)"
    echo "2. aufs"
    read -p "请输入选项号码: " storage_driver_choice
    case $storage_driver_choice in
        1)
            echo "您选择使用overlay2作为存储驱动"
            mkdir -p /etc/docker
            echo "{ \"storage-driver\": \"overlay2\" }" | sudo tee /etc/docker/daemon.json
            sudo systemctl restart docker
            ;;
        2)
            echo "您选择使用aufs作为存储驱动"
            mkdir -p /etc/docker
            echo "{ \"storage-driver\": \"aufs\" }" | sudo tee /etc/docker/daemon.json
            sudo systemctl restart docker
            ;;
        *)
            echo "无效的选项"
            exit 1
            ;;
    esac
fi

echo ""
# 添加用户到docker组
read -p "是否需要将其他用户添加到docker组?[y/n]: " user_choice
if [[ $user_choice == "y" || $user_choice == "Y" ]]; then
    read -p "请输入要添加到docker组的用户名: " username
    sudo usermod -aG docker $username
    echo "用户 $username 已添加到docker组。"
    echo "请确保注销并重新登录以使更改生效。"
fi

echo ""
echo ""
# 输出安装验证和进一步配置的信息
echo "请使用以下命令验证Docker安装是否成功:"
echo "docker version"
echo ""
echo "如果需要进一步配置Docker,请参考官方文档或相关教程。"

只要全力以赴就无所谓失败

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值