zoukankan      html  css  js  c++  java
  • Docker安装MySQL,Redis,阿里云镜像加速

    Docker安装

    虚拟化容器技术。Docker基于镜像,可以秒级启动各种容器。每一种容器都是一个完整的环境,容器之间相互隔离。

    如果之前安装的有其他版本,卸载旧的版本。

    $ sudo yum remove docker 
                      docker-client 
                      docker-client-latest 
                      docker-common 
                      docker-latest 
                      docker-latest-logrotate 
                      docker-logrotate 
                      docker-engine
    

    安装yun-utils和yum-config-manager

    $ sudo yum install -y yum-utils
    
    $ sudo yum-config-manager 
        --add-repo 
        https://download.docker.com/linux/centos/docker-ce.repo
    

    安装最新版本

    $ sudo yum install docker-ce docker-ce-cli containerd.io
    

    查看版本

    $ sudo docker -v
    

    开启docker

    $ sudo systemctl start docker
    

    验证是否安装成功,运行hello-world

    $ sudo docker run hello-world
    

    阿里云镜像加速

    在这里插入图片描述
    在这里插入图片描述

    sudo mkdir -p /etc/docker 
    sudo tee /etc/docker/daemon.json <<-'EOF' 
    {  
    	"registry-mirrors": ["https://w4zxu525.mirror.aliyuncs.com"]
    }
    EOF 
    sudo systemctl daemon-reload 
    sudo systemctl restart docker
    

    Docker安装MySQL

    获取MySQL的镜像

    docker pull mysql:5.7
    

    查看镜像docker images

    运行下载好的镜像

     docker run -p 3306:3306 --name qmm-mysql -v ~/mysql/data:/var/lib/mysql -v ~/mysql/conf:/etc/mysql -v ~/mysql/log:/var/log/mysql -e MYSQL_ROOT_PASSWORD=123456  -d mysql:5.7
    
    

    查看所有docker创建的容器: docker ps -a

    docker ps 查看正在运行的容器

    image-20200922195326287

    修改MySQL的配置文件

    找到你从容器映射到本机的目录,例如上面映射的是~/mysql/conf对应docker容器中MySQL的/etc/mysql;进去~/mysql/conf你发现什么都没有,然后用以下命令创建配置文件

    vi my.cnf
    

    添加以下内容,实际上就改了character-set=utf8

    
    [client]
    default-character-set=utf8
    
    [mysql]
    default-character-set=utf8
    
    [mysqld]
    init_connect='SET collation_connection = utf8_unicode_ci'
    init_connect='SET NAMES utf8'
    character-set-server=utf8
    collation-server=utf8_unicode_ci
    skip-character-set-client-handshake
    skip-name-resolve
    
    

    怎样让修改后的配置生效呢?

    重启mysql容器:docker restart mysql

    然后进去mysql的控制台,查看以下里面的配置是否已经更新

    进入mysql容器,控制台:docker exec -it (容器ID) /bin/bash

    查看内容:cat my.cnf

    image-20200922200111469

    Docker安装Redis

    下载镜像文件

    docker pull redis
    

    image-20200922200512385

    创建实例并启动

    首先创建redis配置文件

    mkdir -p ~/redis/conf
    touch ~/redis/conf/redis.conf
    

    image-20200922200915263

    启动实例

    docker run -p 6379:6379 --name redis -v ~/redis/data:/data -v ~/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf
    

    检查 docker ps

    image-20200922201410260

    使用redis镜像执行redis命令

    docker exec -it redis redis-cli
    

    image-20200922201554628

    因为redis的数据是直接存储在内存中的,所以当我们再次启动redis的时候,里面的数据就没了(默认情况下是不支持持久化的)。

    image-20200922201912051

    那如何使redis支持持久化呢?

    进入redis配置文件的目录下,然后修改配置文件,开启AOF持久化。

    image-20200922202109561

    在redis.conf中添加appendonly yes,然后保存退出。

    然后再重启redis容器,进入redis-cli,重新添加键值对,退出,再重启是,因为开启了AOF持久化所以,还可以查到之前设置的值。

    image-20200922202607145

    最后还有查看docker下载的redis版本,其实默认不指定就是下载最新版。

    docker exec -it redis redis-server -v

    image-20200922203258720

    redis6.0配置文件官方文档

    image-20200922203459768

  • 相关阅读:
    LINUX 下编译不通过解答
    线程与进程
    机房收费系统之报表总结2
    【android开发】10款实用的Android UI工具,非常有用!
    EMPTY表示元素不能包含文本,也不能包含子元素
    ResultSet是结果集对象
    如果没有指定Cookie的时效,那么默认的时效是。(选择1项)
    用于调用存储过程的对象是。(选择1项)
    Statement和PreparedStatement都是用来发送和执行SQL语句的
    DTD与XML Schema都是XML文档。(选择1项)
  • 原文地址:https://www.cnblogs.com/dataoblogs/p/14121860.html
Copyright © 2011-2022 走看看