前言
最近总是有粉丝找莫提帮忙搭建一下服务器的环境,而且都是新服务器,也就是刚刚从 XX云 上购买创建的。最近打算多做一些关于服务器的视频,比如搭建个人网站、搭建Java服务、搭建MySQL服务、配置反向代理 …
然后周末无聊,就写了三个脚本,非常的方便实用,只需要一行命令就可以实现下面的功能,但服务器一定要是CentOS7
的系统才能使用。
- 更换yum源为阿里源,解决yum安装/更新速度慢的问题
- 安装Docker并配置镜像加速器
- 使用Docker安装MySQL
使用
获取脚本可在我的公众号【爱学习的莫提】,后台回复【脚本】
之后你会得到三个文件,如下图所示:
之后你需要将这三个文件上传的服务器(一定是CentOS7)
注意:上传服务器之后需要赋予脚本执行权限:
chmod -R 777 *.sh
之后只需要分别执行三个脚本就可以了
./ali-image.sh ./docker-install.sh ./mysql-install.sh
当然这几个脚本也是可以加一些参数的,具体使用可以往下接着看。
当然在这里声明一下:鄙人能力有限,也没有专门学过Shell脚本,互相学习,欢迎大家在评论区交流!
ali-image.sh
官网下载的CentOS的yum源不是国内镜像,这样会导致yum在线安装及更新速度很慢。这时候需要将yum源设置为国内镜像站点,提升速度。国内主要开源的开源镜像站点应该是网易和阿里云了。
这个脚本可以帮你把你的服务器的yum镜像源自动配置为国内阿里的镜像,并完成原有配置的备份。
使用起来也是非常方便,在脚本所在目录执行:./ali-image.sh
即可。
执行效果
脚本内容
如果看不懂脚本可以直接跳过
#!/bin/bash # description: 更换Centos7默认镜像源为阿里源 # author: 莫提 cd /etc/yum.repos.d/ # 备份原配置 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup # 下载阿里镜像配置 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo echo " " echo "==================" echo "更换阿里镜像源成功" echo "==================" echo " " # 重新生成缓存 yum makecache
docker-install.sh
在服务器上安装Docker还是稍微有一丢丢麻烦,首先要安装一些基本的依赖,如果重新安装还需要卸载和删除一些指定的文件,如果不配置镜像加速器的话,使用docker pull
也会非常的慢,包括将Docker设置为开启自启等。这些复杂的操作加一起就更加的繁琐了。
所以我写了一个脚本来拯救上面的这些问题,只需要执行一行命令就可以完成上面的诸多操作。
使用起来也是非常方便,在脚本所在目录执行:./docker-install.sh
即可。
如果你之前安装过Docker,那么你需要在执行脚本的使用使用-r
参数即可:./docker-install.sh -r
,这样在安装的时候就可先去卸载已有的Docker并重新安装。
执行效果
脚本内容
如果看不懂脚本可以直接跳过
#!/bin/bash # description: CentOS7安装Docker # author: 莫提 # 卸载旧版本 if [ -n "$1" ]; then # 校验传入参数 if [ "$1" = "-r" ] then echo "开始卸载已有Docker服务..." systemctl stop docker yum -y remove docker-ce rm -rf /var/lib/docker yum -y remove docker docker-common docker-selinux docker-engine else echo " " echo "==================================" echo "=============安装失败=============" echo "==================================" echo "非法参数:$1" echo "==================================" echo "首次安装:./docker-install.sh" echo "重新安装:./docker-install.sh -r" echo "==================================" echo " " fi fi echo "开始安装Docker服务..." # 安装需要的软件包 yum install -y yum-utils device-mapper-persistent-data lvm2 # 设置stable镜像仓库 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 更新yum软件索引 yum makecache fast # 安装Docker-ce yum -y install docker-ce # 启动Docker systemctl start docker # 开机自启 systemctl enable docker # 配置Docker镜像加速器 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://c2yf9ia3.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker echo " " echo "==================================" echo "=============安装成功=============" echo "==================================" echo " " docker ps
mysql-install.sh
最后一个脚本是使用Docker来搭建MySQL服务,一般来说常规套路是先去search、然后pull、最后再run,但是run的时候要加一大堆参数,非常的不好记,所以我也封装成了脚本,使用起来美滋滋。
这个脚本支持最多携带三个参数:
-v
:小写v,表示MySQL的版本,比如5.7
、5.5
、8.0
… 只要是官方存在的版本都行,如果不加这个参数,默认为5.7
-p
:小写p,表示暴露的端口,如果不加这个参数,默认为3306
-P
:大写P,表示MySQL的root用户的默认密码,如果不加这个参数,默认为123456
这三个参数可以携带任意数量,并且不分先后顺序。
./mysql-install.sh -v5.5 -p3305 -P123321 ./mysql-install.sh -p3305 -v5.5 ./mysql-install.sh -P000111
执行效果
脚本内容
如果看不懂脚本可以直接跳过
#!/bin/bash # description: 使用Docker安装Mysql5.7 # author: 莫提 version=5.7 password=123456 port=3306 if [[ $1 == -v* ]];then version=${1:2} elif [[ $1 == -P* ]];then password=${1:2} elif [[ $1 == -p* ]];then port=${1:2} fi if [[ $2 == -v* ]];then version=${2:2} elif [[ $2 == -P* ]];then password=${2:2} elif [[ $2 == -p* ]];then port=${2:2} fi if [[ $3 == -v* ]];then version=${3:2} elif [[ $3 == -P* ]];then password=${3:2} elif [[ $3 == -p* ]];then port=${3:2} fi echo " " echo "============================" echo "=======开始安装MySQL========" echo "============================" echo "Version:$version" echo "Password:$password" echo "Port:$port" echo "============================" echo " " # 拉去镜像 docker pull mysql:$version # 运行镜像 docker run --restart=always -p $port:3306 --name mysql$version -e MYSQL_ROOT_PASSWORD=$password -d mysql:$version echo "============================" echo "=======安装MySQL成功========" echo "============================" docker ps