zoukankan      html  css  js  c++  java
  • 【Docker】 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二)

    系列目录:

    【Docker】 CentOS7 安装 Docker 及其使用方法 ( 一 )            

    【Docker】 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二) 

    【Docker】 .Net Core 3.1 webapi 集成EF Code First (MySql) (三) 

    【Docker】使用Docker 发布 .Net Core 项目 (四)  

    .......持续不定期更新中

    前期准备: 阿里云服务器一台,连接工具MobaXterm。

    安装Docker的方法:https://www.cnblogs.com/simawenbo/p/13644326.html

    部署MySQL

    1.拉取镜像

    docker pull mysql
    docker pull mysql:版本号

    2.创建容器

    docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456
    -v /usr/local/docker/mysql/conf.d:/etc/mysql/conf.d
    -v /usr/local/docker/mysql/logs:/var/log/mysql
    -v /usr/local/docker/mysql/data:/var/lib/mysql
    -d mysql --lower_case_table_names=1

    -p 映射端口号

    -e 设置密码

    -name 设置容器名称发

    -d 所用镜像

    -v 把容器内部文件挂载至宿主机中,方便修改。

    --lower_case_table_names=1 忽略表名大小写,存储都用小写,不加可能无法正常启动

    3. 开启容器

    Docker start mysql

    4. 进入容器,登录MySQL

    docker exec -it mysql bash
    mysql  -uroot -p

    如果有以下报错,因为my.cnf没有配置成功。

    在宿主机 /usr/local/docker/mysql/conf/ 添加  my.cnf ,

    [client]
    default-character-set=utf8mb4

    [mysql]
    default-character-set=utf8mb4

    [mysqld]
    pid-file = /var/run/mysqld/mysqld.pid
    socket = /var/run/mysqld/mysqld.sock
    datadir = /var/lib/mysql
    secure-file-priv= NULL
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    max_connections=10000
    default-time_zone='+8:00'
    character-set-client-handshake=FALSE
    character_set_server=utf8mb4
    collation-server=utf8mb4_unicode_ci
    init_connect='SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci'

    5. 配置密码并配置远程访问权限,刷新系统。

    alter user 'root'@'localhost' identified with mysql_native_password by '新密码';
    flush privileges;

    6.新建一个用户用于远程访问,并给这个用户访问权限。

    CREATE USER '新用户名称'@'%' IDENTIFIED WITH mysql_native_password BY '新密码';
    GRANT ALL PRIVILEGES ON *.* TO '新用户名'@'%';

    7.在客户端电脑访问阿里云上的数据库

     ps.在阿里云上需要放通3306端口!如果连不上请检查云服务器网络安全组设置!

    部署Redis

    1.拉取镜像

    docker pull redis

    2.在宿主机准备映射文件,修改映射配置文件

    redis的配置文件 redis.conf 官网下载: http://download.redis.io/redis-stable/redis.conf

    在/usr/local/docker/redis 目录下创建配置文件,并将官网redis.conf文件配置复制下来进行修改

    在/usr/local/docker/redis 目录下创建目录data

    3.修改启动默认配置(从上至下依次):

    bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问

    protected-mode no #默认yes,开启保护模式,限制为本地访问

    daemonize no #默认no,改为yes意为以守护进程方式启动,可后台运行,改为yes会使配置文件方式启动redis失败(因为run docker的时候已经用了-d 有冲突)

    databases 16 #数据库个数(可选)。

    dir  ./  #输入本地redis数据库存放文件夹(可选)

    appendonly yes #redis持久化(可选)

    requirepass  密码 #配置redis访问密码

    4.创建容器

    docker run -p 6379:6379 --name redis 
    -v /usr/local/docker/redis/redis.conf:/etc/redis/redis.conf 
    -v /usr/local/docker/redis/data:/data 
    -d redis redis-server /etc/redis/redis.conf --appendonly yes

    命令解释说明:

    -p 端口映射。

    –name 指定该容器名称。

    -v 挂载目录。

    -d redis 表示后台启动redis。

    redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,加载的是挂载目录/usr/local/docker/redis/redis.conf 文件。

    –appendonly yes 开启redis 持久化。

    5.访问redis

    进入容器

    docker exec -it redis bash 

    然后登录redis

    redis-cli

    ps.查看日志命令为:docker logs -f -t --tail 100 redis

    -f : 跟踪日志输出

    -t : 显示时间戳

    --tail 100 : 显示最新100行 

    redis : 容器名

  • 相关阅读:
    CentOS_关机与重启命令详解
    去除ArrayList重复的对象
    单项设计模式
    死循环的应用
    java学习心得-面向对象与面向过程
    计算机使用个人经验及日常维护
    linux操作系统简介
    集合
    项目学习4
    周末总结
  • 原文地址:https://www.cnblogs.com/simawenbo/p/13652454.html
Copyright © 2011-2022 走看看