• Docker安装mysql & redis


    一、Docker安装mysql

    二、Docker安装redis

    1、我们这里有两种访问redis的方式:

    第一种:使用redis镜像执行redis-cli命令连接

     但是这个访问方式有一个缺点!!!!!!

    第二种:用redis的可视化工具


    一、Docker安装mysql

    1、首先第一步就是去docker镜像仓库中拉取一个5.7版本的mysql镜像:我们在Docker笔记数据卷挂载那里写过一个手动创建mysql镜像,然后基于该镜像运行容器的,这里我们演示从镜像仓库服务器拉取的方式

    命令: docker pull mysql:5.7    

    注: 不加 5.7版本的话就默认拉取的是最新的mysql镜像版本

     

     2、有了该mysql镜像后,我们就可以基于该镜像运行容器了:

            注1:以挂载数据卷的形式运行容器

            注2: 宿主机的这些文件目录不用先创建,Docker非常智能会给我们自动创建

    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/nysql \
     -e MYSQL_ROOT_PASSWORD=123456 \
     -d mysql:5.7

     重点:如果这些命令复制显示找不到命令的话,就一行一行的手敲命令!!!!

     

     参数说明-p3306:3306:将容器的3306端口映射到主机的3306端口(用户访问容器的3306端口,就可以访问到容器内部的mysql的3306了)

    -v/mydata/mysql/conf:/etc/mysql:将mysql容器内的/etc/mysql配置文件夹挂载到主机/mydata/mysql/conf的位置上,这样就不用再进入到mysql容器内部修改文件数据了(这就是数据卷的魅力)

    -v/mydata/mysql/log:/var/log/mysql:同理

    -v/mydata/mysql/data:/var/lib/mysql/:同理

    -eMYSQL_ROOT_PASSWORD=123456:初始化root用户的密码

    3、mysql容器运行成功后,我们就可以测试了(也就是说看看是否可以成功访问到mysql了):

    重点注意:用可视化工具连接的时候,linux自带防火墙别忘记开放3306端口!!!!(这里我已经把防火墙整体关闭了)

     

     

     注意:我们测试能够连接成功时,先别进行连接该mysql,我们可以先设定一下这个数据库的编码形式,防止后期出现一些乱码问题,设定好之后就可以连接这个mysql了:

    设定编码形式:

      

    加入完这些配置之后,再输入 docker restart mysql 命令重启mysql容器即可。 

    [client]
    default-character-set=utf8

    [mysql]
    default-character-set=utf8

    [mysqld]init_connect='SETcollation_connection=utf8_unicode_ci'
    init_connect='SETNAMESutf8'
    character-set-server=utf8
    collation-server=utf8_unicode_ci
    skip-character-set-client-handshake
    skip-name-resolve

    最终通过上面的操作后,Docker就成功的安装上了mysql了(并且也做了防止乱码的处理)

    二、Docker安装redis

    1、同理第一步也是去Docker镜像仓库中拉取redis镜像:

    2、同理我们现在有了redis镜像后,就可以基于这个redis镜像运行容器了:

    这里和运行mysql容器有一点差别如下所示:

     

     然后就可以基于redis镜像输入命令运行容器了:

    命令如下所示:

     

    重点:还是别粘贴复制了,建议手敲命令,要不然很容易就报错了!!!!

    通过上面的操作,我们的redis就成功的启动了,我们就可以使用redis可视化工具进行输入一些redis命令了(回顾:redis的五种储存类型) 

    1、我们这里有两种访问redis的方式:

    第一种:使用redis镜像执行redis-cli命令连接

    也就是说我们redis容器启动成功后,输入一个命令即可访问到redis,然后就可以输入一些redis的命令进行操作储存/删除/修改redis中的数据了:

    命令:docker exec -it redis redis-cli

     但是这个访问方式有一个缺点!!!!!!

    问题:储存的数据不能够持久化,也就是说我们上面储存在key为a的value数据,当我们这个redis容器重启的话那么这个数据就丢失了,只要重启redis容器那么数据就会丢失,那肯定是不行的。

    因此我们可以设定一下配置解决这个不能持久化的问题:

     

    然后再重启一下redis容器,这个不能持久化问题就解决了:

    重启redis容器命令:docker restart redis

    第二种:用redis的可视化工具

     

     

    最终我们会发现确实在连接成功后能够在可视化工具中看到刚才我们设定的key为a,value为b的数据。 

  • 相关阅读:
    SpringMVC的流程图解+内部各组件的源码和配置使用(全!!!!!!)
    02RabbitMQ 安装
    689. 三个无重叠子数组的最大和(dp)
    一点感受
    【RabbitMQ实战】 03 SpringBoot RabbitMQ生产者和消费者示例
    TheGraph 教程
    MediaSoup简介
    算法竞赛中的小球放盒子问题
    C++每日面试之assert()
    如何实现element表格合并行?
  • 原文地址:https://blog.csdn.net/lwj_07/article/details/127810206