Docker入门到实战教程八安装M

一.查找镜像

查找DockerHub上的mysql镜像

dockersearchmysqlfile二.拉取镜像

默认拉取最新版的mysql8.0的

file三.查看镜像

拉取完成后看下镜像是否成功拉取

dockerimagesfile四.配置文件

在上一篇Redis的安装教程中,大家都有疑问,为什么我要采取挂载的方式以及我怎么知道配置文件在哪?

好的,接下来我们一一解答

1.为什么我要采取挂载的方式?有状态服务是指:需要数据存储功能的服务、或者指多线程类型的服务,队列等。(mysql、redis、kafka、zookeeper等)Docker容器原则上是短暂的,如果容器被删除或损坏,任何数据或配置都将丢失2.怎么知道配置文件在哪?大家部署的MySQL,大概文件路径不一致。我们可以先创建个测试的MySQL容器,然后再根据查找出的文件具体路径位置,重新创建我们符合我们需求的MySQL容器,命令如下:

dockerrun--namemysql-p:-eMYSQL_ROOT_PASSWORD=root-dmysqlfile查找数据文件位置进入Docker容器内

dockerexec-itmysqlbashfile

命令介绍:mysql--help

grepmy.cnf查找Docker内,MySQL配置文件my.cnf的位置

orderofpreference,my.cnf,$MYSQL_TCP_PORT,路径按优先排序

/etc/my.cnf/etc/mysql/my.cnf~/.my.cnf

配置文件的路径不一定都一样,有些位置是在/etc/my.cnf。而我centos系统上,实际存在位置是在/etc/mysql/my.cnf

查找数据文件位置用于在容器上运行dockerinspect命令的JSON输出具有一个Mount密钥,其值提供了有关数据目录卷的信息:

dockerinspectmysqlfilefile

输出显示源文件夹:/var/lib/docker/volumes,表示已安装在/var/lib/mysql容器内的服务器数据目录中

这样就可以把相关路径了解清楚

五.挂载配置文件

接下来,我们需要在宿主机上,创建一个数据和配置文件的挂载路径

mkdir-p/usr/local/src/mysql/confmkdir-p/usr/local/src/mysql/datafile

创建好宿主机的挂载数据路径后,我们将测试容器里MySQL的配置文件复制到该路径。后面要是修改配置直接修改宿主机的配置文件即可。

dockercpmysql:/etc/mysql/my.cnf/usr/local/src/mysql/conffile五.启动容器

启动前需要将之前的安装测试的删除掉

dockerrm-fmysqlfile5.1启动命令

dockerrun--namemysql\-p:-eMYSQL_ROOT_PASSWORD=root\-v/usr/local/src/mysql/conf/my.cnf:/etc/mysql/my.cnf\-v/usr/local/src/mysql/data:/var/lib/mysql\--restart=on-failure:3\-dmysql5.2查看是否启动成功

dockerps5.3查看启动日志

dockerlogs-fmysqlfile

启动命令分解

--name:为容器指定一个名字-p:指定端口映射,格式为:主机(宿主)端口:容器端口-e:MYSQL_ROOT_PASSWORD="xxx",设置环境变量--restart=on-failure:3:是指容器在未来出现异常退出的情况下循环重启3次-v:挂载-d:后台运行容器,并返回容器id

注:我这里使用的是-v,但是在最新的MySQL官方Docker搭建MySQL文档中,建议我们大家使用--mount,因为研究表明它更易于使用。我这里也把--mount挂载方式展示出来,看大家习惯




转载请注明:http://www.aierlanlan.com/rzfs/906.html