Docker编辑"my.cnf"停止容器中的文件

问题描述

在对"my.cnf"进行编辑后,当我尝试启动容器时,我现在在Mac上从Kitematic收到一个错误:

mysqld: [ERROR] Found option without preceding group in config file /etc/mysql/my.cnf at line 19! mysqld: 
        [ERROR] Fatal error in defaults handling. Program aborted!

我尝试通过以下方式访问容器:

docker exec -it [container] bash

...但是我得到了错误:

Error response from daemon: Container [container] is not running

我能够通过图像访问某物,但是文件看起来并不相同,所以我不确定发生了什么(我不太熟悉Docker. ).

在此阶段,进行适当的编辑并修复容器,或者以某种方式将MySQL数据克隆到另一个容器将是理想的选择.

推荐答案

要修复my.cnf,可以使用docker container cp.它适用于停止的容器. 试试

docker container cp [container]:/etc/mysql/my.cnf container-my.cnf

然后编辑container-my.cnf并复制回去:

docker container cp container-my.cnf [container]:/etc/mysql/my.cnf

 


要在新容器中使用现有的MySQL数据,


To use the existing MySQL data with a new container:

docker container inspect -f '{{.Mounts}}' [container]

为您提供数据所在的卷名(键volume).然后启动一个新的mysql容器并将卷安装在/var/lib/mysql下:

docker container run -d -v [volume_name]:/var/lib/mysql [image]

此后,您可以删除旧容器(实际上,您可以在创建新容器之前将其删除)

上一篇:nio初认识之channel


下一篇:容器下Mysql的my.cnf ,表不区分大小写