前言

玩过Windows中的 .bat 的小伙伴是不是觉得很有意思呢,github中一键推送、同步拉取等等操作,哈哈,当然shell脚本也是很类似,可以运行一个脚本就可以自动给我们部署好环境啦!但是这还只是简单的shell脚本,还有更高级的等你来探索哦!

一、简单剖析docker安装mysql5.7

  1.在前面笔记中我们已经安装好了docker和mysql5.7,这里我们先回顾一下docker的安装步骤:

# 1.安装系统依赖工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 2.yum的配置管理docker软件源地址
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 3.更新 yum 缓存
sudo yum makecache fast

# 4.安装docker
sudo yum install -y docker-ce

# 5.启动docker服务
sudo systemctl start docker

# 6.加入开机启动项
sudo systemctl enable docker

  2.mysql 5.7安装步骤,完成后 Navicat 连接下就好啦(你喜欢用什么就用什么连接):

# 1.安装mysql首先 mkdir 一个挂载目录mysql下的conf、data、logs,默认在此路径)
mkdir -p ~/mysql/conf ~/mysql/data ~/mysql/logs

# 2.docker pull镜像 安装 mysql5.7 默认3306端口,密码:xxxx自行设置,目录:~/mysql/
docker pull mysql:5.7
docker run -p 3306:3306 --name hrun_mysql -v ~/mysql/conf:/etc/mysql/conf.d -v ~/mysql/data:/var/lib/mysql -v ~/mysql/logs:/logs -e MYSQL_ROOT_PASSWORD=xxxx -d mysql:5.7

二、简单编写shell脚本一键部署mysql 5.7

  1.上面我们发现都是以一些下载、安装命令来完成环境搭建的,那我用vi创建一个install文件。

  ①vi install  然后按键 i 进入编辑模式,将上面的命令全部粘贴

  ②复制后,按 Esc 键退出编辑模式,再按  :wq   回车退出vi编辑器

  2.完成简单shell脚本后,我们就可以用执行命令运行脚本: . ~/install

[root@iZbp19lugf22zbsubsf1y6Z ~]# . ~/install

注意看这里有技巧:因为我这里已经安装过了,就不需要再执行了,小伙伴们不妨去试试吧。这里还有一个docker安装的小技巧,我们一般需要先pull一个镜像,但是小编发现已安装docker的前提下可直接运行,如安装mysql5.7,输入:

docker run -p 3306:3306 --name hrun_mysql -v ~/mysql/conf:/etc/mysql/conf.d -v ~/mysql/data:/var/lib/mysql -v ~/mysql/logs:/logs -e MYSQL_ROOT_PASSWORD=xxxx -d mysql:5.7

你会发现docker自动给你下载mysql5.7,不再需要输入docker pull mysql5.7,另外也不需要再创建目录:~/mysql/conf、~/mysql/data、~/mysql/log。运行mysql5.7容器时自动给你建好了,直接使用行啦,是不是觉得棒棒哒?

三、以 jenkins 为实例演示

  1.首先自检一下我的镜像是否有 jenkins,显然是没有的。

[root@iZbp19lugf22zbsubsf1y6Z ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
alpine latest 965ea09ff2eb 5 days ago 5.55MB
mysql 5.7 cd3ed0dfff7e 10 days ago 437MB
rethinkdb latest d8636baa6e8e 3 months ago 185MB
swarm latest ff454b4a0e84 17 months ago 12.7MB
ehazlett/curl latest c8127af118e0 2 years ago 6.38MB
dockerclub/shipyard latest 2ac2c13dfa84 3 years ago 61.4MB
shipyard/docker-proxy latest cfee14e5d6f2 3 years ago 9.47MB
microbox/etcd latest 6aef84b9ec5a 4 years ago 17.9MB
[root@iZbp19lugf22zbsubsf1y6Z ~]#

  2.常规部署 jenkins docker命令如下:

# 创建映射jenkins目录
mkdir ~/jenkins

# 下载jenkins 镜像
docker pull jenkins

# 运行jenkins 容器
docker run -d -p 3006:8080 -p 50000:50000 -v ~/jenkins:/var/jenkins -v /etc/localtime:/etc/localtime --name jenkins jenkins

# 这里是查看 jenkins 的激活密码
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword

  3.骚操作如下:

# 直接运行jenkins 容器
docker run -d -p 3006:8080 -p 50000:50000 -v ~/jenkins:/var/jenkins -v /etc/localtime:/etc/localtime --name jenkins jenkins

# 这里是查看 jenkins 的激活密码
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword

这时候发现在自动下载jenkins镜像,等待下载完成就自动运行容器了(可以放开双手了):

下载完成后便会自动运行容器了:

[root@iZbp19lugf22zbsubsf1y6Z ~]# docker run -d -p 3006:8080 -p 50000:50000 -v ~/jenkins:/var/jenkins -v /etc/localtime:/etc/localtime --name jenkins jenkinsUnable to find image 'jenkins:latest' locally

latest: Pulling from library/jenkins
55cbf04beb70: Pull complete
1607093a898c: Pull complete
9a8ea045c926: Pull complete
d4eee24d4dac: Pull complete
c58988e753d7: Pull complete
794a04897db9: Pull complete
70fcfa476f73: Pull complete
0539c80a02be: Pull complete
54fefc6dcf80: Pull complete
911bc90e47a8: Pull complete
38430d93efed: Pull complete
7e46ccda148a: Pull complete
c0cbcb5ac747: Pull complete
35ade7a86a8e: Pull complete
aa433a6a56b1: Pull complete
841c1dd38d62: Pull complete
b865dcb08714: Pull complete
5a3779030005: Pull complete
12b47c68955c: Pull complete
1322ea3e7bfd: Pull complete
Digest: sha256:eeb4850eb65f2d92500e421b430ed1ec58a7ac909e91f518926e02473904f668
Status: Downloaded newer image for jenkins:latest
bf45b24cfa71a412729b1a70968e10d3c9a47ef141a8f6fa5c4ced9445b0251b

便可以查看到jenkins 已经在运行了,输入:docker ps

Docker学习3-简单shell脚本安装mysql5.7与docker小技巧的更多相关文章

  1. 用shell脚本安装MySQL-5.7.22-官方版本

    Install_CentOS7_MySQL57_binary.sh #!/bin/bash MySQL_Package=mysql-5.7.22-linux-glibc2.12-x86_64.tar. ...

  2. 用shell脚本安装MySQL-5.7.22-Percona版本

    #!/bin/bash MySQL_Package=Percona-Server-5.7.22-22-Linux.x86_64.ssl101.tar.gz Package_Source=Percona ...

  3. 用shell脚本安装MySQL-5.7.22-官方版本多实例

    Install_CentOS7_MySQL57_multi_instance.sh #!/bin/bash #请提前准备好参数文件my.cnf PORT=3307 InitMySQL() { mkdi ...

  4. 对于shell脚本参数获取时的一点小技巧

    问题如下: 根据脚本参数的个数$#进行一个循环,在依次输出每个参数$1 $2 $3...... 我有一个循环变量i $i 取到这时的i为1,我想使用这个1再去调用$1,也是就是打印出第一个参数 就是$ ...

  5. 查看当前支持的shell,echo -e相关转义符,一个简单shell脚本,dos2unix命令把windows格式转为Linux格式

    /etc/shells [root@localhost ~]# more /etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bi ...

  6. Linux学习-->如何通过Shell脚本实现发送邮件通知功能?

    1.安装和配置sendmail 不需要注册公网域名和MX记录(不需要架设公网邮件服务器),通过Linux系统自带的mail命令即可对公网邮箱发送邮件.不过mail命令是依赖sendmail的,所以我们 ...

  7. Shell基础(一):Shell基础应用、简单Shell脚本的设计、使用Shell变量、变量的扩展应用

    一.Shell基础应用 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 切换用户的Shell环境       2> 练习命令历史.命令别名       3 ...

  8. 简单shell脚本

      简单shell脚本备忘   #!/bin/sh num= ] do table_num=`printf %03d ${num}` echo album_info_${table_num} #mys ...

  9. Git学习-->如何通过Shell脚本实现 监控Gitlab备份整个过程并且通过邮件通知得到备份结果?

    一.背景 Git学习–>如何通过Shell脚本自动定时将Gitlab备份文件复制到远程服务器? http://blog.csdn.net/ouyang_peng/article/details/ ...

随机推荐

  1. Day 23 系统服务之救援模式

    1.CentOS6与Centos 7启动流程 4.运行级别C6&C7 0 关机 1 单用户模式 (超级权限 必须面对实体硬件) 2 暂未使用 3 字符界面(黑框) 4 暂未使用 5 图形界面 ...

  2. MOOC C++笔记(二):类和对象基础

    第二周:类和对象基础 面向对象程序设计的四个基本特点 抽象.封装.继承.多态. 面向对象程序设计的过程 1.从客观事物抽象出类 抽象出的事物带有成员函数与成员变量(类似于带函数的结构体) 成员变量和成 ...

  3. Alibaba Cloud Toolkit 一键部署插件使用入门

    一.前言 Cloud Toolkit官方介绍文档:https://www.aliyun.com/product/cloudtoolkit Cloud Toolkit 是针对 IDE 平台为开发者提供的 ...

  4. java处理emoji(转)

    最近对接ios.安卓客户端,需要处理emoji等表情符号,网上总结: 1.过滤掉emoji表情符 2.修改数据库的编码格式等,让其支持存储emoji 以下分别对两种方案进行描述: 第一种:过滤掉emo ...

  5. vscode Springboot 启动debug报错:Build failed, do you want to continue?

    一,前言 vscode我感觉是一个特别好用的开发工具,我根据文章https://www.cnblogs.com/WangBoBlog/p/9464281.html去搭建一个简单的springboot工 ...

  6. 提交第一个spark作业到集群运行

    写在前面 接触spark有一段时间了,但是一直都没有真正意义上的在集群上面跑自己编写的代码.今天在本地使用scala编写一个简单的WordCount程序.然后,打包提交到集群上面跑一下... 在本地使 ...

  7. Mybaits-从零开始-Spring、Spring MVC、MyBatis整合(未万待续)

    Spring.Spring MVC.MyBatis整合(未万待续)

  8. 阿里云ecs安全组端口开放设置

    新买的一些云服务,上面操作都没问题还是无法访问,需要在购买的服务里加上安全规则,如图: 点击配置规则进行操作

  9. java架构之路-(spring源码篇)springIOC容器源码解析(上)

    我们这次来叭叭一下Spring的源码,这次博客主要来说说Spring源码,先粗略的撸一遍,下篇博客选几个重点去说,由于过于复杂,我也是看了一点点,我们先来过一遍源码,然后上流程图,最后我们再回头总结一 ...

  10. python编程基础之十一

    循环语句:周而复始,在满足某个条件下,重复做相同或类型的事情, 循环语句三要素:循环条件 + 循环体 + 循环条件改变while 条件 : 循环体 循环条件改变... while 条件 : 循环体 循 ...