一、 前期准备工作,创建配置文件目录,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. 用matalb、python画聚类结果图

    用matlab %读入聚类后的数据, 已经分好级别了,例如前4行是亚洲一流, %-13是亚洲二流,-24是亚洲三流 a=xlsread('C:\Users\Liugengxin\Desktop\1.x ...

  2. AutoCAD神器! AutoCAD自动切换中英文输入法插件(ZDSRF)

    AutoCAD神器! AutoCAD自动切换中英文输入法插件 (一)功能特点: CAD命令中只能输入英文字符,不能输入中文,在文字编辑.文字输入.尺寸编辑中经常需要输入中文,此时就需要频繁的切换输入法 ...

  3. C++类的组合例子

    Line类调用Point类的两个对象p1,p2作为其数据成员,计算线段长度 组合类构造函数定义的一般形式为: 类名::类名(形参表):内嵌对象1(形参表),内嵌对象2(形参表)... {类的初始化} ...

  4. html字体加大标签与写法介绍

    在html中字体加大的标签为<big>,一般用于重要文字,醒目文字,让用户容易看到! 字体加大: <big>写上你想写的字</big> 效果:未加大  加大 效果中 ...

  5. Halcon 17与 c# 混合编程

    这篇主要是C#和Halcon的混合编程,在此基础上对按键不同功能的划分,以及图片适应窗口和从本地打开图片. halcon源程序:   dev_open_window(0, 0, 512, 512, ' ...

  6. Pathon学习笔记1

    1.解释型语言和编译型语言 编译型:需要一个翻译的程序——编译器(Compiler)对源代码进行转化,变成可执行代码,称为编译(Compile).大的复杂的程序还需要链接程序(Linker)来链接各个 ...

  7. Java笔记Spring(八)

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  8. C#实现json压缩和格式化

    json作为常用数据文件,为了传输的效率,在传输前要进行压缩,而在传输后要进行格式化,以便阅读.下面是使用C#完成的格式化和压缩代码. public static string Compress(st ...

  9. lvm再次学习

    目录 LVM构架 分区 pvcreat vgcreat lvcreat 格式化文件系统 挂载至目录 已经学过很多很多遍LVM了,每次都觉得自己学会了,每次都是得查询才能搞定,这次给LVM做个专题,在有 ...

  10. IDEA 倒入maven项目下载很慢

    1.找到安装maven的路径 2.直接搜索settings.xml文件 <mirror> <!--This sends everything else to /public --&g ...