docker-- 将 MySQL 配置挂载到卷
1, 首先在根目录创建两个文件夹, 其中 config 文件夹中创建 my.cnf 配置文件. data 文件夹存放数据文件, 一定要为空.
/docker/MySQL/config/,/docker/MySQL/data
2, 修改 my.cnf 文件
[mysqld]
user=MySQL 一定要以这两行开头.
更多的配置可以到 dockerhub 官方 MySQL/MySQL-server 镜像源中查看
- https://hub.docker.com/r/mysql/mysql-server
- [mysqld]
- user=MySQL
- character-set-server=utf8
- [client]
- default-character-set=utf8
- [MySQL]
- default-character-set=utf8
3, 执行以下命令挂载卷
- docker run -d -p 3306:3306 --name mysql01
- -e MYSQL_ROOT_PASSWORD="password"
- -e MYSQL_USER="LZL"
- -e MYSQL_PASSWORD="pwd123"
- -v=/docker/MySQL/config/my.cnf:/etc/my.cnf
- -v=/docker/MySQL/data:/var/lib/MySQL
- MySQL/MySQL-server
-v 为卷, 映射本地文件夹到容器中的文件. localhost:container 前者是本机的文件: 后者是容器的文件.
4, 启动一些问题
启动后, 通过 docker ps 发现容器并没有启动.
docker ps -a 查看所有容器, 发现容器处于退出状态.
此时我们通过 docker logs mysql01 查看容器的一些错误信息.
发现是权限不足, 导致容器启动后立马 stop.
- docker run -d -p 3306:3306 --name mysql01
- --privileged=true
- -e MYSQL_ROOT_PASSWORD="password"
- -e MYSQL_USER="LZL"
- -e MYSQL_PASSWORD="pwd123"
- -v=/docker/MySQL/config/my.cnf:/etc/my.cnf
- -v=/docker/MySQL/data:/var/lib/MySQL
- MySQL/MySQL-server
解决方法:--privileged=true 加入该参数授权.
当修改配置的时候, 只需修改 / docker/MySQL/config/my.cnf 文件, restart 容器, 配置即可生效.
来源: http://www.bubuko.com/infodetail-3360218.html