问题描述
在对"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]
此后,您可以删除旧容器(实际上,您可以在创建新容器之前将其删除)