一、 前期准备工作,创建配置文件目录,log文件目录,数据库DATA和WEB站点目录
[root@T1 ~]# mkdir -p /lnmp/conf/{mysql,nginx,php} /lnmp/logs/{mysql,nginx,php} /lnmp/data/{mysql,www}
[root@T1 ~]# tree /lnmp/
/lnmp/
├── conf
│   ├── mysql    mysql配置文件
│   ├── nginx    nginx配置文件
│   └── php      php配置文件
├── data
│   ├── mysql    MySQL数据文件目录
│   └── www      站点根目录
└── logs
     ├── mysql    mysql日志文件
     ├── nginx    nginx日志文件
     └── php      php日志文件
``````````````

2. 安装mysql5.7镜像
2.1 目录映射关系[镜像---->主机]
/etc/mysql/mysql.conf.d ---->/lnmp/conf/mysql
/var/lib/mysql ---->/lnmp/data/mysql
/var/log/mysql ---->/lnmp/logs/mysql

2.2 下载镜像
[root@T1 ~]# docker pull mysql:5.7

创建一个容器
[root@T1 image]# docker run -d -v /lnmp/conf/mysql:/etc/mysql/mysql.conf.d -v /lnmp/data/mysql:/var/lib/mysql -v /lnmp/logs/mysql:/var/log/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name dnmp_mysql5.7 mysql:5.7
0b7e685c3cbc3aa838230de31e0f1ddb37ce2e7a058c533648729183e39068eb

[root@T1 image]# netstat -nlp|grep 3306
tcp6 0 0 :::3306 :::* LISTEN 6700/docker-proxy

[root@T1 image]# docker ps |grep dnmp_mysql5.7
0b7e685c3cbc mysql:5.7 "docker-entrypoint.s…" 47 seconds ago Up 46 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp dnmp_mysql5.7

2.3 目录关系映射后,log的属主和属主都变了,需要改变为原来的属性[日志目录修改属主和属组为mysql:adm],不要问我为什么
[root@T1 image]# docker exec -it dnmp_mysql5.7 /bin/bash -c "ls -l /var/log/ |grep mysql"
drwxr-xr-x 2 root root 6 Jan 9 21:40 mysql
[root@T1 image]# docker exec -it dnmp_mysql5.7 /bin/bash -c "chown mysql:adm /var/log/mysql/ -R"
[root@T1 image]# docker exec -it dnmp_mysql5.7 /bin/bash -c "ls -l /var/log/ |grep mysql"
drwxr-xr-x 2 mysql adm 6 Jan 9 21:40 mysql

2.4 创建mysql的配置文件,下面配置只是测试日志路径,优化配置还需要完善
# cat >> /lnmp/conf/mysql/my.cnf << EOF
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

max_connections = 1000
symbolic-links=0
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

slow_query_log =1
long_query_time = 10
slow_query_log_file = /var/log/mysql/slow.log
log-error=/var/log/mysql/error.log

server-id =100
log_bin=/var/log/mysql/mysql-bin
EOF

2.5 重启容器
[root@T1 lnmp]# docker restart 0b7e685c3cbc
[root@T1 lnmp]# docker exec -it dnmp_mysql5.7 /bin/bash -c "ln -s /var/lib/mysql/mysql.sock /var/run/mysqld/mysqld.sock"
-------------------------------------------------------------------------------------------------------------------------->
如果登陆数据库报如下错误
root@0b7e685c3cbc:/# mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
root@0b7e685c3cbc:/# ln -s /var/lib/mysql/mysql.sock /var/run/mysqld/mysqld.sock
-------------------------------------------------------------------------------------------------------------------------->

2.6 查看目录映射关系,已经OK了
[root@T1 lnmp]# ls /lnmp/logs/mysql/ /lnmp/conf/mysql/ /lnmp/data/mysql/
/lnmp/conf/mysql/:
my.cnf

/lnmp/data/mysql/:
0b7e685c3cbc.pid ca-key.pem client-cert.pem ib_buffer_pool ib_logfile0 ibtmp1 mysql.sock performance_schema public_key.pem server-key.pem
auto.cnf ca.pem client-key.pem ibdata1 ib_logfile1 mysql mysql.sock.lock private_key.pem server-cert.pem sys

/lnmp/logs/mysql/:
error.log mysql-bin.000001 mysql-bin.index slow.log

就可以解决问题了
我们的my.cnf也已经生效了,数据库容器创建完成
mysql> show variables like '%max_connections%';
mysql> show variables like '%slow_query_log%';
max_connections 1000

slow_query_log ON
slow_query_log_file /var/log/mysql/slow.log

--------------------------------------------------------------------------------------------------->

docker学习-lnmp+redis之搭建mysql容器服务的更多相关文章

  1. docker学习-lnmp+redis之搭建lnp容器服务

    nginx+php7.0容器服务 本来想用单独的容器(nginx和php分开),但是因为是初学,php容器安装扩展的时候一直失败,所以就把centos+nginx+php放一起搭建了,优点是扩展简单, ...

  2. docker学习-lnmp+redis之搭建redis容器服务

    1. 目录映射:/lnmp/data/redis:/data/lnmp/conf/redis/redis.conf:/etc/redis/redis.conf/lnmp/logs/redis:/var ...

  3. DOCKER 学习笔记5 Springboot+nginx+mysql 容器编排

    前言 在上节的内容中,我们已经通过一个简单的实例,将Docker-compose 进行了实际的应用.这一小节中.我们将通过学习和了解,着重认识容器的编排,上一节只算是一个小小的测试.在这一节中.我们将 ...

  4. Docker学习之搭建MySql容器服务

    描述 MySQL 5.6 SQL数据库服务器Docker镜像,此容器映像包含用于OpenShift的MySQL 5.6 SQL数据库服务器和一般用法.用户可以选择RHEL和基于CentOS的图像.然后 ...

  5. Docker学习笔记之--.Net Core应用容器通过网桥连接Redis容器(环境:centos7)

    上节演示通过应用容器连接sql server容器,连接:Docker学习笔记之--.Net Core项目容器连接mssql容器(环境:centos7) 本节演示安装 redis容器,通过网桥连接 先决 ...

  6. Docker学习笔记之一,搭建一个JAVA Tomcat运行环境

    Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...

  7. Docker搭建Mysql容器

    转载自:http://blog.csdn.net/Mungo/article/details/78521832?locationNum=9&fps=1 本文介绍如何使用docker迅速搭建My ...

  8. DOCKER 学习笔记4 认识DockerCompose 多容器编排

    前言 通过上一节的学习,学会了如何在Linux 环境下搭建Docker并且部署Springboot 项目,并且成功的跑了起来,当然,在生产环境中,不只是需要一个后端的Web 项目,还需要比如 Ngin ...

  9. Docker学习笔记4: Docker-Compose—简化复杂容器应用的利器

    本文转载自http://www.tuicool.com/articles/AnIVJn. 因Python语言,个人也没学过,不是太熟悉,这篇文章的代码格式排版不准确爆了很多错,让我走了好多坑,不过还是 ...

随机推荐

  1. declaration may not appear after executable statement in block

    keil 编译时出现 declaration may not appear after executable statement in block,找到keil工程对应的函数 定义的地方出现在了赋值的 ...

  2. TCP流量控制

    TCP的流量控制,是为了更好的传输数据,控制流量不要发送太快而至于接收端没有足够的缓存的接收. 利用滑动窗口,可以很方便的控制传输 rwnd:可以控制接收窗口大小.ACK代表确认位,ack代表确认字段 ...

  3. linux基础命令入门

    1.使用mkdir 创建目录mkdir $HOME/testFolder 2.使用cd命令切换目录cd $HOME/testFolder 3.使用 cd ../ 命令切换到上一级目录cd ../ 4. ...

  4. vue分页效果

    js部分 <script src="....js/vue.js"></script> <script src="..../js/vue-re ...

  5. java 基础排序算法

    冒泡: 从左往右依次比较相邻的两个数,将小数放在前面,大数放在后面. public void bobSort(){        for(int i=0;i<length-1;i++){//排序 ...

  6. sublimit 编辑器 设置默认的编码

    1.首选项>>设置 - 用户 2.加上:"default_encoding": "UTF-8"

  7. python爬虫爬取京东、淘宝、苏宁上华为P20购买评论

    爬虫爬取京东.淘宝.苏宁上华为P20购买评论 1.使用软件 Anaconda3 2.代码截图 三个网站代码大同小异,因此只展示一个 3.结果(部分) 京东 淘宝 苏宁 4.分析 这三个网站上的评论数据 ...

  8. 学习Flask框架

      # -*- encoding: utf-8 -*- #导包 from flask import Flask #建立flask对象 app = Flask(__name__) #使用flask路由器 ...

  9. 记录一次JQuery 动态参数使用

    之前动态id 使用时时候一直是复制黏贴的,到自己实际使用的时候却毫无印象,这样不可取呀 $('#id')  取的是 id=‘id’ 的元素 $('#'+id)  才是取id为动态值的时候正确写法 记录 ...

  10. django 创建视图和APP

    .创建视图views 1.在项目目录下创建views.py文件 2.from django.http import HttpResponse 3.在urls 导入模板: from django.con ...