zoukankan      html  css  js  c++  java
  • Docker学习3-简单shell脚本安装mysql5.7与docker小技巧

    前言

    玩过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

    欢迎来QQ交流群:482713805

  • 相关阅读:
    Git命令与使用
    Android与WebView的JS交互
    Android 中关于硬件加速的使用和问题
    Activity-生命周期和启动模式
    Activity-恢复与保存状态或数据
    Android中Paint的一些使用心得记录
    Java中sleep,wait的区别
    C#基本类型
    LeetCode74 搜索二维矩阵
    leetcode 43 字符串相乘 java
  • 原文地址:https://www.cnblogs.com/gsxl/p/11747493.html
Copyright © 2011-2022 走看看