/etc/MySQL/my.cnf更改后MySQL容器崩溃,如何重新编辑?
我更改了一些mysql配置设置并设置了一些错误,现在Docker容器继续重新启动,我无法在主机文件系统中找到要编辑的/etc/MySQL/my.cnf更改后MySQL容器崩溃,如何重新编辑?,mysql,docker,crash,debian,containers,Mysql,Docker,Crash,Debian,Containers,我更改了一些mysql配置设置并设置了一些错误,现在Docker容器继续重新启动,我无法在主机文件系统中找到要编辑的my.cnf文件。我尝试了aufs/diff文件夹,但到目前为止找不到它。还尝试: find / -name my.cnf -exec nano {} \; 但它没有显示我更改的文件。我试图将config.v2.json改为启动/bin/bash,而不是mysqld,并重新启动了docker,但它还是使用官方的mysql容器映像启动了mysqld(应该是管理员还是什么?)。我看到
my.cnf
文件。我尝试了aufs/diff文件夹,但到目前为止找不到它。还尝试:
find / -name my.cnf -exec nano {} \;
但它没有显示我更改的文件。我试图将
config.v2.json
改为启动/bin/bash
,而不是mysqld
,并重新启动了docker,但它还是使用官方的mysql容器映像启动了mysqld
(应该是管理员还是什么?)。我看到了两种可能的解决方案:
绕过MySQL映像的入口点
通过运行docker images
查找图像名称,然后运行:
docker run -it --entrypoint="/bin/sh" OPTIONS image
这将把您带到容器中的bash,从那里您可以执行您想要查找my.cnf
文件的所有命令。虽然我不知道是否从那里编辑文件,保存它并尝试再次运行它将工作。我没有试过
删除旧图像并使用正确的方式编辑my.cnf
文件
通过运行找到您的映像名:docker images
,然后通过运行docker rmi
查看文档中的默认MySQL图像,我引用如下内容:
使用自定义MySQL配置文件启动MySQL
配置在文件/etc/mysql/my.cnf中指定,并且
文件依次包括在/etc/mysql/conf.d中找到的所有文件
以.cnf结尾的目录。此目录中的文件中的设置将被删除
在/etc/mysql/my.cnf中增加和/或覆盖设置。如果你想
使用定制的MySQL配置,您可以创建您的备选方案
配置文件在主机上的目录中,然后装载
该目录在mysql中的位置为/etc/mysql/conf.d
容器
如果/my/custom/config-file.cnf是自定义文件的路径和名称
在配置文件中,您可以像这样启动mysql容器(注意
仅在该文件中使用自定义配置文件的目录路径
命令):
$docker run——命名一些mysql-v/my/custom:/etc/mysql/conf.d-e
MYSQL\u ROOT\u PASSWORD=my secret pw-d MYSQL:tag
这将开启一个新的时代
容器mysql,其中mysql实例使用组合
从/etc/mysql/my.cnf和
/etc/mysql/conf.d/config-file.cnf,带有后者的设置
优先
从那时起,如果您在主机上创建
my.cnf
文件,那么您将永远不会再次遇到此问题,因为您可以根据需要多次编辑该文件 我看到两种可能的解决方案:
绕过MySQL映像的入口点
通过运行docker images
查找图像名称,然后运行:
docker run -it --entrypoint="/bin/sh" OPTIONS image
这将把您带到容器中的bash,从那里您可以执行您想要查找my.cnf
文件的所有命令。虽然我不知道是否从那里编辑文件,保存它并尝试再次运行它将工作。我没有试过
删除旧图像并使用正确的方式编辑my.cnf
文件
通过运行找到您的映像名:docker images
,然后通过运行docker rmi
查看文档中的默认MySQL图像,我引用如下内容:
使用自定义MySQL配置文件启动MySQL
配置在文件/etc/mysql/my.cnf中指定,并且
文件依次包括在/etc/mysql/conf.d中找到的所有文件
以.cnf结尾的目录。此目录中的文件中的设置将被删除
在/etc/mysql/my.cnf中增加和/或覆盖设置。如果你想
使用定制的MySQL配置,您可以创建您的备选方案
配置文件在主机上的目录中,然后装载
该目录在mysql中的位置为/etc/mysql/conf.d
容器
如果/my/custom/config-file.cnf是自定义文件的路径和名称
在配置文件中,您可以像这样启动mysql容器(注意
仅在该文件中使用自定义配置文件的目录路径
命令):
$docker run——命名一些mysql-v/my/custom:/etc/mysql/conf.d-e
MYSQL\u ROOT\u PASSWORD=my secret pw-d MYSQL:tag
这将开启一个新的时代
容器mysql,其中mysql实例使用组合
从/etc/mysql/my.cnf和
/etc/mysql/conf.d/config-file.cnf,带有后者的设置
优先
从那时起,如果您在主机上创建
my.cnf
文件,那么您将永远不会再次遇到此问题,因为您可以根据需要多次编辑该文件 发布Dockerfile,docker run
命令,任何有帮助的细节,你都需要构建一个新的映像我正在使用docker run--restart=always--log opt max size=10m--log opt max file=10--name mysql-e mysql\u ROOT\u PASSWORD=pass-d mysql所以不使用Dockerfile。你的mysql映像来自哪里?当你修改它的时候,你是怎么做的?只是docker exec
然后docker commit
?你能发布docker镜像吗?grep mysql只要用shell启动你的mysql镜像,比如docker run。。。my_mysql bash
然后你有一个shell在里面,你可以调试。您肯定应该有一个docker文件,docker背后的理念是,可以轻松快速地获取新的、更新的imagecheckdocker事件
文档发布docker文件、docker run
命令、任何有帮助的详细信息,您需要构建一个新的映像我正在使用docker run--restart=always--log opt max size=10m--log opt max file=10--name mysql-e mysql\u ROOT\u PASSWORD=pass-d mysql所以不使用dockerfile.your mys