/etc/MySQL/my.cnf更改后MySQL容器崩溃,如何重新编辑?

/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(应该是管理员还是什么?)。我看到

我更改了一些mysql配置设置并设置了一些错误,现在Docker容器继续重新启动,我无法在主机文件系统中找到要编辑的
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背后的理念是,可以轻松快速地获取新的、更新的imagecheck
docker事件
文档发布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