【发布时间】:2016-12-05 16:07:45
【问题描述】:
我已经使用 Percona 创建了 docker 容器来执行这个命令:
docker run -v <path-to-files-on-host-machine>:/etc/mysql/conf.d
--name percona -p 6604:3306 -e MYSQL_ROOT_PASSWORD=12345 -d percona/percona-server:latest \
--innodb_data_file_path=ibdata1:10M:autoextend:max:1G --sql_mode='' --character-set-server=utf8 --collation-server=utf8_general_ci;
根据 DockerHub 上的documentation,我的主机中有带有my.cnf 的挂载目录作为Docker 容器中的/etc/mysql/conf.d。
但是当我启动我的容器时,Percona 不会从我的自定义 my.cnf 中读取设置。此外,我尝试创建 my.cnf 错误以在启动时使 Percona 崩溃。但没有效果。
如何将自定义 my.cnf 附加到 Percona Docker 容器?
【问题讨论】:
-
您是否在启用 SELinux 的情况下运行?
-
我不知道。但我尝试了不同的主机系统:Windows 10 和 Ubuntu 14.04
-
好的,所以执行到容器中并检查文件是否在您期望的位置
-
当我去容器时:
docker exec -u root -it percona /bin/bash和cat /etc/mysql/conf.d/my.cnf我在主机上得到my.cnf的内容 -
没有线索,抱歉,检查包含的
/etc/mysql/my.cnf是否包含目录,但看不出为什么它不会...作为一种解决方法,您可以尝试将文件挂载为/etc/mysql/my.cnf并隐藏提供的...但这是一个 hack