记录一个docker安装mysql的小问题,查了一下网上说的,说的是权限的问题,但是我仔细一瞧发现并不是,权限问题的话应该是这样的
mysqld:Can’treaddirof‘/etc/mysql/conf.d’
(Errcode:13-Permissiondenied)mysqld:[ERROR]Fat
在容器的运行命令加上
–privileged=true即可,
但是我试着没有效果,很明显我这个并不是权限的问题,后来想到有可能是挂载目录出现的问题。结果还真是。用如下的方法就能解决。
首先拉取镜像:dockerpullmysql:5.7
然后安装mysql:
dockerrun-p:--namemysql-v/mydata/mysql/log:/var/log/mysql-v/mydata/mysql/data:/var/lib/mysql-v/mydata/mysql/conf:/etc/mysql-eMYSQL_ROOT_PASSWORD=root-dmysql:5.7
但是通过命令dockerps查看没有这个容器:dockerps
查看运行日志dockerlogs容器id查看容器id(以下命令可以查看全部容器,包括启动失败的):dockerps-a
查看容器的启动日志:dockerlogs33e03e9baa15报错如下:
就是不存在/etc/mysql/conf.d这个目录
原因:我们在书写创建容器的命令出了问题
我们这个挂载目录出了问题,我的理解是mysql容器的/etc/mysql目录挂载到宿主机的/mydata/mysql/conf目录,由于宿主机的/mydata/mysql/conf是空的,所以找不到/etc/mysql/conf.d中conf.d这个目录,导致容器创建失败。我这么做的目的是将配置文件挂载到宿主机,但是我查看mysql