环境信息

Docker是什么?

Docker就是一个平台,这个平台具备开发、发布和运行应用程序的功能,在项目生命周期中,我们可以运用Docker实现快速交付、测试和部署。Docker通过将运行环境打包成一个镜像,就可以在安装了Docker的任意平台上运行(一次构建,到处运行)。

安装Docker

  1. centos版本推荐7以上,centos6安装docker比较麻烦。如果以前安装过docker,需要先清理:

    sudo yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine
  2. 安装docker需要的工具包

    sudo yum install -y yum-utils

    如果提示下图内容:



    这是由于当前系统没有 CentOS-Base.repo 文件,使用命令重新下载一个:

    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  3. 添加yum源

    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  4. 安装docker

    // 中途需要输入y进行确认
    sudo yum install docker-ce docker-ce-cli containerd.io
  5. 配置镜像加速地址(阿里云)

    5.1 首先登录阿里云控制台,选择容器镜像服务



    5.2 复制命令并执行

  6. 配置docker自启

    systemctl enable docker

安装mysql

mysql的容器我们可以让docker创建和执行,但是mysql的数据不能仅存在容器内,需要我们开辟一个外部路径专门用来存储mysql数据。

  1. 安装mysql

    docker run -p 3306:3306 --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
    简单讲解一下,
    -p 3306:3306:将容器的3306端口映射到主机的3306端口
    -v 源地址(宿主机):目标地址(容器),将主机的/mydata/mysql/log挂载到mysql容器的/var/log/mysql目录
    -e 指定容器内的环境变量,这里是指定mysql密码为root
    -d 后台运行容器,并返回容器ID
    mysql:5.7 指定mysql版本,具体版本可以在https://hub.docker.com 查询
  2. 验证mysql是否安装成功

    docker ps

    如下,如果显示了mysql就是安装成功了

  3. 开启mysql远程访问权限:

    先进入mysql容器
    docker exec -it mysql /bin/bash
    登录mysql,密码就是我们初始化时设置的root
    mysql -uroot -p
    然后开始开启远程访问权限
    use mysql;
    select host,user from user;



    查看host不是%,需要先更新成%(如果是%跳过,直接进行下面的授权):

    update user set host = '%' where user = 'root';

    然后开始授权

    // 此句会开启root的远程访问权限,实际根据场景应该开一个权限小的账号
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
    // 刷新权限
    flush privileges;
  4. 上面对mysql本身开启了远程访问权限,下面需要配置防火墙,阿里云还需要在控制台配置安全组开放3306端口。

    # 如果firewalld 没有开启,先开启下
    service firewalld start
    #开放3306端口
    firewall-cmd --permanent --add-port=3306/tcp;
    #重启防火墙(修改配置后要重启防火墙)
    firewall-cmd --reload

    最后配置mysql自启:

    docker update --restart=always mysql

    此时使用navicat 可以访问MySQL了

安装redis

  1. 首先创建redis数据存放目录和配置文件

    mkdir -p /mydata/redis/conf
    touch /mydata/redis/conf/redis.conf
    // 编辑配置文件,开启持久化
    vi /mydata/redis/conf/redis.conf
    // 配置文件中加入下面的命令
    appendonly yes
  2. 安装redis

    docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf --requirepass "123456"
    
     简单讲解一下,
    -p 6379:6379:将容器的6379端口映射到主机的6379端口
    -v /mydata/redis/data:/data,将主机的/mydata/redis/data挂载到redis容器的/data目录
    -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf,将主机的redis.conf文件替换容器的redis.conf文件,这样我们可以在主机上对redis进行配置
    redis-server /etc/redis/redis.conf,通过redis.conf运行redis
    --requirepass "123456",设置密码为123456

    添加防火墙规则开启redis远程访问(阿里云还需要配置安全组开放6379端口):

    #开放6379端口
    firewall-cmd --permanent --add-port=6379/tcp;
    #重启防火墙(修改配置后要重启防火墙)
    firewall-cmd --reload

    配置redis自启:

    docker update --restart=always redis

Centos7.2 安装docker、mysql和redis的更多相关文章

  1. Centos7上安装docker (转)

    Centos7上安装docker Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE. 社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如 ...

  2. docker(一) Centos7下安装docker

    docker(一) Centos7下安装dockerdocker(二) windows10下安装dockerdocker(三) 镜像和容器常用命令 docker(四) 使用Dockerfile构建镜像 ...

  3. CentOS7下安装docker(Docker系列1)

    CentOS7下安装docker 系统要求 为了安装docker,需要准备 64-bit的CentOS 7 删除非官方的Docker包 yum的仓库中有一个很旧的Docker包, 现在Docker官方 ...

  4. centos7上安装docker社区版

    container(容器) docker(集装箱) 容器的优点 1. 启动速度快 2. 节省资源 3. 兼容性高 保证机器正常上网 #ping www.baidu.com CPU需要支持虚拟化 # g ...

  5. centos7下安装docker与镜像加速

    1.背景 centos7下安装docker 2.安装 第一步:检查是否为centos7版本 第二步:依赖环境安装 执行如下两个命令: yum -y install gcc yum -y install ...

  6. 在Centos7中安装Docker并实例化Mysql

    首先 本文是一篇安装流程,从初始的Centos7安装Docker后实例化一个Mysql的整个流程,其中会包含一些需要注意的疑点和坑. 实例化的Mysql是将数据和配置保存在宿主机. 注意,在安装Doc ...

  7. centos7.0安装docker报错

    使用centos7.0安装dockers时出现Transaction check error错误. yum install docker Transaction check error: file / ...

  8. Linux(centos7)下安装Docker

    近期公司开始推Docker技术.这个系列的文章都是基于CentOS7系统下进行讲解的. Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器 ...

  9. Centos7快速安装docker

    偶然间发现,docker的安装好容易啊 系统环境:centos7.3 yum源: docker:https://mirrors.aliyun.com/docker-ce/linux/centos/do ...

随机推荐

  1. [Codeforces 580D]Fizzy Search(FFT)

    [Codeforces 580D]Fizzy Search(FFT) 题面 给定母串和模式串,字符集大小为4,给定k,模式串在某个位置匹配当且仅当任意位置模式串的这个字符所对应的母串的位置的左右k个字 ...

  2. Java_Math类和Random类

    Math类 java.lang.Math提供了一系列静态方法用于科学计算, 其方法的参数和返回值类型一般都为double型, 如果需要更加强大的数学运算能力计算高等数学中的相关内容, 可使用apach ...

  3. Spring Boot API 统一返回格式封装

    今天给大家带来的是Spring Boot API 统一返回格式封装,我们在做项目的时候API 接口返回是需要统一格式的,只有这样前端的同学才可对接口返回的数据做统一处理,也可以使前后端分离 模式的开发 ...

  4. ajax传值出现乱码问题

    第一种:前台传值到后台,浏览器控制台打印正常,controller接收后成了乱码. 后台controller层加上两行转换代码 name=URLDecoder.decode(name,"ut ...

  5. .NET 5 中的隐藏特性

    前言 双十一当天 .NET 5 正式发布带来了很多的新特性和改进,个人觉得非常香,并且花了 10 分钟时间就把自己的 4 个 .NET Core 3.1 的项目升级到了 .NET 5,堪称无痛. 但是 ...

  6. 包装类和基本数据类型(以int和Integer为例)

    Java的包装类就是可以直接将简单类型的变量表示为一个类.java共有六个包装类:Integer,Long,Float,Double,Character,Boolean,对应六种基本数据类型. 包装类 ...

  7. 【JVM第四篇--运行时数据区】堆

    写在前面的话:本文是在观看尚硅谷JVM教程后,整理的学习笔记.其观看地址如下:尚硅谷2020最新版宋红康JVM教程 一.堆的概述 JVM的运行时数据区如下: 一个Java程序运行起来对应着一个进程(操 ...

  8. MFC窗口通过OpenCV显示图片

    思路非常讨巧,就是将namedWindow创建的窗口的客户区贴到MFC的图片控件里面去,然后将剩下的窗口框架隐藏掉,代码如下: cv::Mat img = cv::imread("./tes ...

  9. P类问题、NP类问题与NPC类问题

    (转载自作者 "Matrix67原创" 的文章,链接为:http://www.matrix67.com/blog/archives/105) 你会经常看到网上出现"这怎么 ...

  10. Gulp自动化构建的基本使用

    Study Notes 本博主会持续更新各种前端的技术,如果各位道友喜欢,可以关注.收藏.点赞下本博主的文章. Gulp 用自动化构建工具增强你的工作流程! gulp 将开发流程中让人痛苦或耗时的任务 ...